Heim > Backend-Entwicklung > PHP-Tutorial > Wie implementiert man einen JSONP-Rückruf für domänenübergreifendes JavaScript?

Wie implementiert man einen JSONP-Rückruf für domänenübergreifendes JavaScript?

Mary-Kate Olsen
Freigeben: 2024-10-22 15:41:02
Original
478 Leute haben es durchsucht

How to Implement JSONP Callback for Cross-Domain JavaScript?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage