Heim >Web-Frontend >js-Tutorial >Wie kann JSONP domänenübergreifende AJAX-Probleme in jQuery lösen?
Domänenübergreifendes AJAX mit jQuery
Die AJAX-Funktionalität von jQuery ist ein wesentliches Werkzeug für die dynamische Webentwicklung. Wenn Sie jedoch AJAX-Anfragen über verschiedene Domänen hinweg ausführen, können Probleme mit der ursprungsübergreifenden Ressourcenfreigabe (CORS) auftreten.
Ein solches Problem tritt auf, wenn sich test.php und testserver.php auf separaten Servern befinden, was zu einem „ „Fehler“-Alarm wird ausgelöst. Dies liegt daran, dass Browser-Sicherheitsmaßnahmen standardmäßig AJAX-Anfragen unterschiedlicher Herkunft einschränken.
Lösung: JSONP
Um CORS zu überwinden, kann JSONP (JSON mit Padding) eingesetzt werden. JSONP verwendet einen anderen Ansatz, indem es ein Skript dynamisch vom Remote-Server lädt und so CORS vermeidet Einschränkungen.
Implementierung
jQuery:
$.ajax({ url: "testserver.php", dataType: 'jsonp', // Specify JSONP data type success:function(json){ // Process JSON data alert("Success"); }, error:function(){ alert("Error"); } });
PHP:
<?php $arr = array("element1", "element2", array("element31", "element32")); $arr['name'] = "response"; echo $_GET['callback']. "(".json_encode($arr).");"; ?>
Beachten Sie, dass die Echo-Anweisung von PHP dazu dient, die JSON-Daten in die von bereitgestellte Rückruffunktion einzuschließen jQuery, einschließlich korrekter Anführungszeichen.
Alternativ kann $.getJSON() von jQuery als Kurzschriftmethode verwendet werden, zusammen mit dem Anhängen von „callback=?“ als GET-Parameter an die URL. jQuery generiert automatisch die entsprechende Rückruffunktion basierend auf diesem Parameter.
Das obige ist der detaillierte Inhalt vonWie kann JSONP domänenübergreifende AJAX-Probleme in jQuery lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!