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:
-
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;
Deklarieren Sie einen Rückruffunktionsrückruf. Der Funktionsname stimmt mit der Anforderungsadresse überein. Der Inhalt der Anforderungsadresse ist ein Ausführungsfunktionsrückruf, der ein JSON-Objekt annimmt als Parameter; Wenn die Skriptressource geladen wird, beginnt die Ausführung des Rückrufs und die Ausgabe der JSON-Daten. 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");
Nach dem Login kopieren
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; Ändern Sie document.domain und setzen Sie die document.domain der Subdomain und der Hauptdomain auf den gleichen Wert Hauptdomäne; window.name, jede Seite hat Lese- und Schreibberechtigungen für window.name, window.name bleibt in allen in einem Fenster geladenen Seiten bestehen; 🎜 >- 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!