JSONP Callback Implementation for Cross-Domain JavaScript
Um die Kommunikation zwischen verschiedenen Domänen zu erleichtern, wurde JSONP (JSON with Padding) eingeführt. Bei dieser Technik wird eine Rückruffunktion erstellt, mit der die JSON-Daten umschlossen und von einer anderen Domäne aus zugänglich gemacht werden können. So implementieren Sie JSONP in PHP:
Akzeptieren des Callback-Parameters
Zunächst akzeptieren wir in der GET-Anfrage einen Parameter namens „callback“:
<code class="php">if(array_key_exists('callback', $_GET)){ ... }</code>
Umschließen der Callback-Funktion
Als nächstes umschließen wir unsere Daten mit der Callback-JavaScript-Funktion. Zum Beispiel:
<code class="php">$callback = $_GET['callback']; echo $callback.'('.$data.');';</code>
PHP-Beispiel
Hier ist ein Beispiel in PHP:
<code class="php"><?php $data = '{}'; // json string if(array_key_exists('callback', $_GET)){ header('Content-Type: text/javascript; charset=utf8'); header('Access-Control-Allow-Origin: http://www.example.com/'); header('Access-Control-Max-Age: 3628800'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); $callback = $_GET['callback']; echo $callback.'('.$data.');'; }else{ // normal JSON string header('Content-Type: application/json; charset=utf8'); echo $data; } ?></code>
JavaScript-Verwendung
Um den JSONP-Dienst zu nutzen, können Sie das Skript-Tag verwenden:
<code class="html"><script> function receiver(data){ console.log(data); } </script> <script src="data-service.php?callback=receiver"></script></code>
Konzepterklärung
Die Kernidee hinter JSONP besteht darin, a zurückzugeben JavaScript-Datei, die die Rückruffunktion aufruft und das JSON-Objekt als ersten Parameter bereitstellt. Die Funktion json_encode() in PHP kann zum Konvertieren von Arrays und Objekten in JSON-Strings verwendet werden.
Durch die Verwendung von JSONP können Sie die Kommunikation zwischen Skripten aus verschiedenen Domänen herstellen und so die Einschränkungen der Same-Origin-Richtlinie effektiv umgehen und Daten ermöglichen Domainübergreifend austauschen.
Das obige ist der detaillierte Inhalt vonWie implementiert man einen JSONP-Rückruf für domänenübergreifendes JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!