Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann JSONP mit jQuery und PHP Cross-Origin-Request-Probleme lösen?

Wie kann JSONP mit jQuery und PHP Cross-Origin-Request-Probleme lösen?

Barbara Streisand
Freigeben: 2024-12-08 07:13:14
Original
659 Leute haben es durchsucht

How Can JSONP with jQuery and PHP Solve Cross-Origin Request Issues?

Cross-Origin-Anfragen mit JSONP: Ein einfaches Beispiel für jQuery und PHP

In diesem Beispiel gehen wir die Herausforderung von Cross-Origin-Anfragen an. Ursprungsanfragen mithilfe von JSONP, einer eleganten Technik, die die Kommunikation zwischen JavaScript und Webservern aus verschiedenen Domänen ermöglicht.

Stellen wir uns vor Sie möchten eine Cross-Origin-Anfrage von einem jQuery-Client an einen PHP-Server senden und eine benutzerdefinierte Antwort abrufen. Um dies zu erreichen, verwenden wir die Methode $.getJSON von jQuery, um eine JSONP-Anfrage zu initiieren.

jQuery-Skript:

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  alert('Your name is ' + response.fullname);
});
Nach dem Login kopieren

PHP-Server Skript:

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: application/json');
  echo $_GET['callback'] . '(' . json_encode(['fullname' => 'Jeff Hansen']) . ')';
}
?>
Nach dem Login kopieren

Erklärung:

Wenn Sie $.getJSON mit einer URL aufrufen, die „?callback=?“ enthält, verarbeitet jQuery automatisch das JSONP Anfrage. Das serverseitige PHP-Skript antwortet mit einem JSON-Objekt, das in einen Funktionsaufruf eingeschlossen ist, der dem von jQuery bereitgestellten Rückruf entspricht. In diesem Fall wird der Rückruf als erster Parameter in der GET-Anfrage übergeben.

Handhabung von HTML-Antworten:

Wenn Sie HTML in der Antwort zurückgeben möchten , können Sie eine Funktion anstelle eines JSON-Objekts innerhalb des PHP-Skripts verwenden:

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: text/html');
  echo '<h1>Welcome, Jeff Hansen!</h1>';
}
?>
Nach dem Login kopieren

Und auf der jQuery-Seite können Sie die Antwort als verarbeiten so:

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  $('#container').html(response);
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann JSONP mit jQuery und PHP Cross-Origin-Request-Probleme lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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