Heim > Backend-Entwicklung > PHP-Tutorial > Wie löst JSONP Probleme mit Cross-Origin-Anfragen?

Wie löst JSONP Probleme mit Cross-Origin-Anfragen?

Linda Hamilton
Freigeben: 2024-12-12 15:15:18
Original
697 Leute haben es durchsucht

How Does JSONP Solve Cross-Origin Request Issues?

Cross-Origin-Anfragen mit JSONP: Ein praktisches Beispiel

Wenn Sie auf Cross-Origin-Richtlinienbeschränkungen stoßen, bietet JSONP (JSON with Padding) eine praktische Lösung. Allerdings kann es zunächst verwirrend sein, die Einzelheiten zu verstehen. Lassen Sie uns den Prozess anhand eines einfachen jQuery-, PHP- und JSONP-Beispiels entmystifizieren.

JSONP für Cross-Origin-Anfragen implementieren

Bedenken Sie den folgenden falschen Codeausschnitt:

// jQuery
$.post('http://MySite.com/MyHandler.php', {
  firstname: 'Jeff'
}, function(res) {
  alert('Your name is ' + res);
});

// PHP
<?php
$fname = $_POST['firstname'];
if ($fname == 'Jeff') {
  echo 'Jeff Hansen';
}
?>
Nach dem Login kopieren

Um ursprungsübergreifende Anfragen zu ermöglichen, nutzen wir JSONP. So geht's:

jQuery:

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

PHP:

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

Schlüssel Punkte:

  • ?callback=?: Dieser Parameter weist den Server an, den Namen der Rückruffunktion an die JSON-Antwort anzuhängen.
  • res.fullname: In JavaScript greifen wir mithilfe der Punktnotation auf den Eigenschaftswert zu. In diesem Fall müssen wir die Antwort jedoch als JSON-Objekt behandeln.

HTML in JSONP-Antworten zurückgeben

Ja, Sie können HTML in JSONP-Antworten speichern. Ändern Sie den PHP-Code wie folgt:

<?php
if ($fname == 'Jeff') {
  header("Content-Type: application/json");
  echo $_GET['callback'] . '({
    'name': 'Jeff Hansen',
    'html': '<span>This is some HTML</span>'
  })';
}
?>
Nach dem Login kopieren

In JavaScript können Sie dann über res.html auf den HTML-Code zugreifen.

Das obige ist der detaillierte Inhalt vonWie löst JSONP Probleme mit Cross-Origin-Anfragen?. 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