Heim  >  Artikel  >  Web-Frontend  >  Analyse des JSONP-Implementierungsprinzips

Analyse des JSONP-Implementierungsprinzips

PHP中文网
PHP中文网Original
2017-06-21 13:29:526807Durchsuche

1. Das Implementierungsprinzip von JSONP besteht darin, Skript-Tags zu verwenden, um die Eigenschaften verschiedener Quellressourcen abzurufen und den Zweck des domänenübergreifenden Zugriffs auf eine Ressource zu erreichen. Das spezifische Verhalten ist wie folgt:

  1. Erstellen Sie ein Skript-Tag, schreiben Sie die Anforderungsadresse in sein src-Attribut und fügen Sie diesen externen Skript-Link in das Head-Tag ein;

  2. Deklarieren Sie einen Rückruffunktionsrückruf. Der Funktionsname stimmt mit der Anforderungsadresse überein.
  3. Der Inhalt der Anforderungsadresse ist ein Ausführungsfunktionsrückruf, der ein JSON-Objekt annimmt als Parameter;
  4. Wenn die Skriptressource geladen wird, beginnt die Ausführung des Rückrufs und die Ausgabe der JSON-Daten.
  5. jsonp ist eigentlich JSON-Padding, und die Funktion, die die JSON-Daten umschließt, ist Padding.
// 简单的mock jsonpvar mockJsonp = function(url) {var ele = document.createElement('script');var head = document.getElementsByTagName('head')[0];
    ele.src = url;
    head.appendChild(ele);
}
mockJsonp('./index.js');function callback(data){
    console.log(data);
}// index.jscallback("name": "xxx", "age": "20");
2. Wenn das Ajax-Anforderungsdatenformat in jq jsonp ist, werden die folgenden Vorgänge ausgeführt: Erstellen Sie zuerst ein Skript-Tag und registrieren Sie dann ein Onload-Callback und fügen Sie schließlich das erstellte Skript-Tag ein. Nach Abschluss des Einfügens wird der Onload-Callback ausgelöst, bei dem das zuvor eingefügte Script-Tag entfernt wird. Der Code callback(200, „success“) ist eigentlich die Success-Callback-Funktion, die Ajaxs JSONP erfolgreich auslöst. Die Callback-Funktion ist eigentlich eine done-Funktion.

3. Domänenübergreifendes JSONP kann nur eine Get-Anfrage sein. Wenn JSONP domänenübergreifend gekapselt wird, wird es durch eine Get-Anfrage ersetzt, unabhängig davon, ob wir Get oder Post angeben.

4. Andere domänenübergreifende Methoden

    cors (Cross-Origin Resource Sharing) domänenübergreifende Ressourcenfreigabe, legen Sie Access-Control-Allow-Origin auf dem Server fest Seite, wenn Sie durchsuchen Wenn der Server die entsprechenden Einstellungen erkennt, erlaubt er den Zugriff;
  1. Ändern Sie document.domain und setzen Sie die document.domain der Subdomain und der Hauptdomain auf den gleichen Wert Hauptdomäne;
  2. window.name, jede Seite hat Lese- und Schreibberechtigungen für window.name, window.name bleibt in allen in einem Fenster geladenen Seiten bestehen; 🎜 >
  3. window.postMessage

Das obige ist der detaillierte Inhalt vonAnalyse des JSONP-Implementierungsprinzips. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn