Heim Web-Frontend js-Tutorial Was ist JSONP? Detaillierte Erläuterung der Verbindung und des Unterschieds zwischen JSON und JSONP

Was ist JSONP? Detaillierte Erläuterung der Verbindung und des Unterschieds zwischen JSON und JSONP

Nov 22, 2016 pm 01:16 PM
ajax php

Wenn es um AJAX geht, werden Sie unweigerlich mit zwei Fragen konfrontiert sein

Die erste ist, welches Format verwendet AJAX zum Datenaustausch?

Die zweite Frage ist, wie man domänenübergreifende Anforderungen löst.

Für diese beiden Probleme gibt es derzeit unterschiedliche Lösungen. Beispielsweise können Daten mit benutzerdefinierten Zeichenfolgen oder XML beschrieben werden, und domänenübergreifend können sie durch serverseitige Proxys gelöst werden.

Aber bisher besteht die am meisten empfohlene oder bevorzugte Lösung darin, JSON für die Datenübertragung zu verwenden und sich für die domänenübergreifende Übertragung auf JSONP zu verlassen. Und darum geht es in diesem Artikel.

Obwohl es nur einen Buchstabenunterschied zwischen JSON und JSONP gibt, sind sie eigentlich überhaupt nicht dasselbe: JSON ist ein Datenaustauschformat, während JSONP ein Format ist, das auf der Grundlage des Einfallsreichtums von Entwicklern erstellt wurde domänenübergreifendes Datenaustauschprotokoll. Nehmen wir als Vergleich den jüngsten populären Spionagefilm. JSON ist der „Code“, den Untergrundparteien zum Schreiben und Austauschen von Informationen verwenden, während JSONP die Verbindungsmethode ist, mit der in Code geschriebene Informationen an ihre Kameraden übermittelt werden. Hast du das gesehen? Zum einen wird das Format der Informationen beschrieben, zum anderen die von beiden Parteien vereinbarte Methode zur Übermittlung der Informationen.

Was ist JSON?

Wie bereits kurz erwähnt, handelt es sich bei JSON um eine textbasierte Datenaustauschmethode bzw. ein Datenbeschreibungsformat. Ob Sie sich dafür entscheiden sollten, müssen Sie zunächst auf seine Vorteile achten.

Vorteile von JSON:

Basierend auf Klartext ist die plattformübergreifende Übertragung äußerst einfach.

Javascript wird nativ unterstützt und fast alle Hintergrundsprachen werden unterstützt.

Leichtes Datenformat, das nur sehr wenige Zeichen einnimmt und besonders für die Internetübertragung geeignet ist.

ist gut lesbar, obwohl es nicht so klar wie XML ist, aber dennoch leicht zu identifizieren nach vernünftiger Einrückung;

Natürlich einfach zu schreiben und zu analysieren, vorausgesetzt, Sie kennen die Datenstruktur;

JSON hat sicherlich Mängel, aber nach Meinung des Autors sind sie wirklich irrelevant, also werden sie es tun nicht gesondert erläutert werden.

JSON-Format oder -Regeln:

JSON kann die Datenstruktur auf sehr einfache Weise beschreiben. Es kann alles, was XML kann, daher gibt es keinen Unterschied zwischen den beiden im Hinblick auf die Überschneidung. Plattform Gleichermaßen gleich.

JSON hat nur zwei Datentypdeskriptoren, geschweifte Klammern {} und eckige Klammern []. Die übrigen englischen Doppelpunkte sind Zuordnungszeichen, englische Kommas sind Trennzeichen und englische doppelte Anführungszeichen „“ sind definierende Zeichen.

Die geschweiften Klammern {} werden verwendet, um einen Satz „verschiedener Arten ungeordneter Schlüssel-Wert-Paarsätze“ zu beschreiben (jedes Schlüssel-Wert-Paar kann als OOP-Attributbeschreibung verstanden werden), und die eckigen Klammern [ ] werden verwendet, um eine Reihe von „geordneten Datensammlungen desselben Typs“ zu beschreiben (kann OOP-Arrays entsprechen).

Wenn es in den beiden oben genannten Sätzen mehrere Unterelemente gibt, sollten diese durch Kommas getrennt werden.

Die Schlüssel-Wert-Paare werden durch einen englischen Doppelpunkt getrennt: und es wird empfohlen, die Schlüsselnamen mit englischen doppelten Anführungszeichen „“ hinzuzufügen, um das Parsen verschiedener Sprachen zu erleichtern.

Die häufig verwendeten Datentypen in JSON sind nichts anderes als Zeichenfolgen, Zahlen, Boolesche Daten und Null. Zeichenfolgen müssen in doppelte Anführungszeichen gesetzt werden, der Rest wird nicht verwendet Allerdings schlage ich nur vor, dass, wenn der Client die Funktion zum Sortieren nach Datum nicht benötigt, das Datum und die Uhrzeit einfach direkt als Zeichenfolge übergeben werden können, was eine Menge Ärger ersparen kann.

JSON-Beispiel

// 描述一个人
var person = {
    "Name": "Bob",
    "Age": 32,
    "Company": "IBM",
    "Engineer": true
}
// 获取这个人的信息
var personAge = person.Age;
// 描述几个人
var members = [
    {
        "Name": "Bob",
        "Age": 32,
        "Company": "IBM",
        "Engineer": true
    },
    {
        "Name": "John",
        "Age": 20,
        "Company": "Oracle",
        "Engineer": false
    },
    {
        "Name": "Henry",
        "Age": 45,
        "Company": "Microsoft",
        "Engineer": false
    }
]
// 读取其中John的公司名称
var johnsCompany = members[1].Company;
// 描述一次会议
var conference = {
    "Conference": "Future Marketing",
    "Date": "2012-6-1",
    "Address": "Beijing",
    "Members": 
    [
        {
            "Name": "Bob",
            "Age": 32,
            "Company": "IBM",
            "Engineer": true
        },
        {
            "Name": "John",
            "Age": 20,
            "Company": "Oracle",
            "Engineer": false
        },
        {
            "Name": "Henry",
            "Age": 45,
            "Company": "Microsoft",
            "Engineer": false
        }
    ]
}
// 读取参会者Henry是否工程师
var henryIsAnEngineer = conference.Members[2].Engineer;
Nach dem Login kopieren

Das ist alles über JSON. Weitere Einzelheiten finden Sie in den Informationen für eine eingehende Untersuchung während des Entwicklungsprozesses.

Was ist JSONP?

Lassen Sie uns zunächst darüber sprechen, wie JSONP entstanden ist:

Tatsächlich gibt es im Internet viele Erklärungen zu JSONP, aber sie sind alle gleich und verwirrend, was für viele Menschen schwierig ist Für diejenigen, die neu darin sind, gibt es einige Schwierigkeiten, aber es ist nicht trivial. Versuchen Sie, das Problem auf Ihre eigene Weise zu erklären und zu sehen, ob es hilft.

Ein bekanntes Problem besteht darin, dass direkte Ajax-Anfragen für normale Dateien das Problem eines domänenübergreifenden unbefugten Zugriffs haben, unabhängig davon, ob es sich um eine statische Seite, eine dynamische Webseite, einen Webdienst oder WCF handelt Da es sich um eine domänenübergreifende Anfrage handelt, ist sie nicht zulässig.

Wir haben jedoch auch festgestellt, dass es beim Aufrufen von js-Dateien auf einer Webseite keinen Einfluss darauf hat, ob es sich um eine domänenübergreifende Anfrage handelt (nicht nur das). Wir haben auch festgestellt, dass alle Tags mit dem Attribut „src“ über domänenübergreifende Funktionen verfügen, z um die Daten in eine js-Formatdatei auf dem Remote-Server zu laden, damit sie vom Client aufgerufen und weiterverarbeitet werden können;

恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据;

这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件(一般以JSON为后缀),显而易见,服务器之所以要动态生成JSON文件,目的就在于把客户端需要的数据装入进去。

客户端在对JSON文件调用成功之后,也就获得了自己所需的数据,剩下的就是按照自己需求进行处理和展现了,这种获取远程数据的方式看起来非常像AJAX,但其实并不一样。

为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

那AJAX和JSONP有有什么联系呢?

ajax和jsonp这两种技术在调用方式上“看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jquery和ext等框架都把jsonp作为ajax的一种形式进行了封装;

但ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1280
29
C#-Tutorial
1257
24
Was passiert, wenn Session_Start () mehrmals aufgerufen wird? Was passiert, wenn Session_Start () mehrmals aufgerufen wird? Apr 25, 2025 am 12:06 AM

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Welche Bedeutung hat die Funktion Session_start ()? Welche Bedeutung hat die Funktion Session_start ()? May 03, 2025 am 12:18 AM

Session_Start () iscrucialinphPFormAnagingUSSERSIONS.1) ItinitiatesanewSessionifnoneExists, 2) Wiederaufnahmen und 3) setaSessionCookieforContinuityAcrossRequests, aktivierende Anwendungen wie

Komponist: Unterstützung bei der PHP -Entwicklung durch KI Komponist: Unterstützung bei der PHP -Entwicklung durch KI Apr 29, 2025 am 12:27 AM

KI kann dazu beitragen, die Verwendung von Komponisten zu optimieren. Zu den spezifischen Methoden gehören: 1. Abhängigkeitsmanagementoptimierung: AI analysiert Abhängigkeiten, empfiehlt die beste Versionskombination und reduziert Konflikte. 2. Automatisierte Codegenerierung: AI generiert Composer.json -Dateien, die den Best Practices entsprechen. 3.. Verbesserung der Codequalität: KI erkennt potenzielle Probleme, liefert Optimierungsvorschläge und verbessert die Codequalität. Diese Methoden werden durch maschinelles Lernen und Technologien für die Verarbeitung von natürlichen Sprachen implementiert, um Entwicklern zu helfen, die Effizienz und die Codequalität zu verbessern.

So verwenden Sie MySQL -Funktionen für die Datenverarbeitung und Berechnung So verwenden Sie MySQL -Funktionen für die Datenverarbeitung und Berechnung Apr 29, 2025 pm 04:21 PM

MySQL -Funktionen können zur Datenverarbeitung und -berechnung verwendet werden. 1. Grundlegende Nutzung umfasst String -Verarbeitung, Datumsberechnung und mathematische Operationen. 2. Erweiterte Verwendung umfasst die Kombination mehrerer Funktionen zur Implementierung komplexer Vorgänge. 3. Die Leistungsoptimierung erfordert die Vermeidung der Verwendung von Funktionen in der WHERE -Klausel und der Verwendung von Gruppenby- und temporären Tabellen.

H5: Schlüsselverbesserungen bei HTML5 H5: Schlüsselverbesserungen bei HTML5 Apr 28, 2025 am 12:26 AM

HTML5 bringt fünf wichtige Verbesserungen mit sich: 1. Semantische Tags verbessern die Code -Klarheit und SEO -Effekte; 2. Multimedia Support vereinfacht Video- und Audio -Einbettung; 3. Form -Verbesserung vereinfacht die Überprüfung; 4. Offline und lokaler Speicher verbessert die Benutzererfahrung. 5. Leinwand- und Grafikfunktionen verbessern die Visualisierung von Webseiten.

Komponist: Der Paketmanager für PHP -Entwickler Komponist: Der Paketmanager für PHP -Entwickler May 02, 2025 am 12:23 AM

Composer ist ein Abhängigkeitsmanagement -Tool für PHP und verwaltet Projektabhängigkeiten über Composer.json -Datei. 1) Composer.json analysieren, um Abhängigkeitsinformationen zu erhalten; 2) Abhängigkeiten analysieren, um einen Abhängigkeitsbaum zu bilden; 3) Download und installieren Sie Abhängigkeiten vom Packagisten in das Lieferantenverzeichnis. 4) Datei Composer.lock erzeugen, um die Abhängigkeitsversion zu sperren, um die Konsistenz und die Wartbarkeit von Projekten zu gewährleisten.

Wie benutze ich Typmerkmale in C? Wie benutze ich Typmerkmale in C? Apr 28, 2025 pm 08:18 PM

Typetraiten werden in C für die Überprüfung und den Betrieb von Kompilierzeittypen verwendet, wodurch die Code-Flexibilität und die Typensicherheit verbessert werden. 1) Das Urteil wird über std :: is_integral und std :: is_floating_point durchgeführt, um eine effiziente Überprüfung und Ausgabe zu erreichen. 2) Verwenden Sie STD :: is_trivial_copyable, um die Vektorkopie zu optimieren, und wählen Sie verschiedene Kopierstrategien entsprechend dem Typ aus. 3) Achten Sie auf die Entscheidungsfindung der Kompilierzeit, die Typensicherheit, die Leistungsoptimierung und die Komplexität der Code. Die angemessene Verwendung von Typetraiten kann die Codequalität erheblich verbessern.

So konfigurieren Sie die Zeichensatz- und Kollationsregeln von MySQL So konfigurieren Sie die Zeichensatz- und Kollationsregeln von MySQL Apr 29, 2025 pm 04:06 PM

Methoden zum Konfigurieren von Zeichensätzen und Kollationen in MySQL gehören: 1. Einstellen der Zeichensätze und Kollationen auf Serverebene: setNames'utf8 '; SetCharactersetutf8; SetCollation_connection = 'utf8_general_ci'; 2. Erstellen Sie eine Datenbank, die bestimmte Zeichensätze und Kollationen verwendet: CreateDatabaseExample_Dbaractersetutf8collatutf8_General_ci; 3.. Geben Sie Zeichensätze und Kollationen an, wenn Sie eine Tabelle erstellen: createTableExample_table (IDINT

See all articles