Heim > Web-Frontend > js-Tutorial > Wie kann JSONP die domänenübergreifenden AJAX-Probleme von jQuery lösen?

Wie kann JSONP die domänenübergreifenden AJAX-Probleme von jQuery lösen?

Mary-Kate Olsen
Freigeben: 2024-12-30 09:32:14
Original
309 Leute haben es durchsucht

How Can JSONP Solve jQuery's Cross-Domain AJAX Problems?

jQuery AJAX Cross-Domain-Dilemma: CORS mit JSONP umgehen

Die Interaktion mit Daten über verschiedene Domänen hinweg stellt aufgrund der ursprungsübergreifenden Ressourcenfreigabe eine Herausforderung dar (CORS)-Einschränkungen. Wenn Sie versuchen, eine AJAX-Anfrage von einer Domäne zu einer anderen auszuführen, z. B. test.php auf localhost und testserver.php auf einem Remote-Server, erzwingen Browser diese Einschränkungen, was zu „Fehler“-Warnungen führt.

Um dies zu umgehen Hindernis stellt sich JSONP (JSON with Padding) als praktikable Problemumgehung heraus. Es nutzt die Flexibilität von Skriptelementen, um Daten über Domänen hinweg abzurufen.

jQuery-Änderungen:
Ändern Sie test.php, um JSONP zu verwenden, indem Sie den dataType-Parameter in „jsonp“ ändern.

PHP-Änderungen:
Passen Sie testserver.php an, um das JSONP widerzuspiegeln Antwort mit dem von jQuery bereitgestellten Rückruf.

Implementierung:

jQuery (test.php):

$.ajax({
    url: "testserver.php",
    dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
    success: function(json){
        // do stuff with json (in this case an array)
        alert("Success");
    },
    error: function(){
        alert("Error");
    }       
});
Nach dem Login kopieren

PHP (testserver.php):

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

Vereinfachte Methode mit $.getJSON():
Alternativ können Sie die Kurzformmethode $.getJSON() verwenden, die automatisch hängt 'callback=?' an an die URL als GET-Parameter.

$.getJSON("testserver.php", function(json){
    // do stuff with json (in this case an array)
    alert("Success");
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann JSONP die domänenübergreifenden AJAX-Probleme von jQuery 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