Heim  >  Artikel  >  Backend-Entwicklung  >  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
Mary-Kate OlsenOriginal
2024-10-22 15:41:02401Durchsuche

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>

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!

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