Heim > Web-Frontend > js-Tutorial > Wie kann jQuery AJAX Same-Origin-Richtlinienbeschränkungen für die domänenübergreifende Kommunikation überwinden?

Wie kann jQuery AJAX Same-Origin-Richtlinienbeschränkungen für die domänenübergreifende Kommunikation überwinden?

Mary-Kate Olsen
Freigeben: 2024-12-22 22:23:18
Original
188 Leute haben es durchsucht

How Can jQuery AJAX Overcome Same-Origin Policy Restrictions for Cross-Domain Communication?

jQuery AJAX Cross-Domain Communication

Domainübergreifende AJAX-Anfragen unterliegen aufgrund von Same-Origin-Policy-Einschränkungen Einschränkungen. Wenn ein Client-Skript in einer Domäne versucht, auf Ressourcen aus einer anderen Domäne zuzugreifen, schlägt dies normalerweise aufgrund von Sicherheitsbedenken fehl.

Fall:

Betrachten Sie den Fall, in dem getestet wird. php befindet sich auf einem Localhost, während testserver.php auf einem Webserver gehostet wird. Eine AJAX-Anfrage von test.php an testserver.php schlägt fehl und löst aufgrund der domänenübergreifenden Natur der Anfrage eine „Fehler“-Warnung aus.

Lösung:

Um diese Einschränkung zu überwinden, kann JSONP (JSON mit Padding) verwendet werden beschäftigt.

jQuery:

$.ajax({
  url: "testserver.php",
  dataType: "jsonp", // Note the lowercase 'p' in JSONP
  success: function (json) {
    // Handle successful response
    alert("Success");
  },
  error: function () {
    alert("Error");
  }
});
Nach dem Login kopieren

PHP:

<?php
$arr = array("element1", "element2", array("element31", "element32"));
$arr['name'] = "response";
echo $_GET['callback'] . "(" . json_encode($arr) . ");";
?>
Nach dem Login kopieren

In PHP wird der Name der Callback-Funktion übergeben von jQuery ist über $_GET['callback'] verfügbar. Durch das Echo einer Antwort im Format „callbackName('jsonString')“ ermöglichen wir jQuery, die JSON-Daten zu interpretieren.

Alternative:

jQuery bietet eine Kurzschriftmethode namens $.getJSON(), was domänenübergreifende AJAX-Anfragen vereinfacht. Es ist jedoch das Anhängen von „callback=?“ erforderlich. als GET-Parameter an die URL angehängt. jQuery ersetzt diesen Platzhalter automatisch durch seine generierte Callback-Methode.

Das obige ist der detaillierte Inhalt vonWie kann jQuery AJAX Same-Origin-Richtlinienbeschränkungen für die domänenübergreifende Kommunikation überwinden?. 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