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

Wie kann JSONP domänenübergreifende AJAX-Probleme in jQuery lösen?

Susan Sarandon
Susan SarandonOriginal
2024-12-18 09:49:10145Durchsuche

How Can JSONP Solve Cross-Domain AJAX Issues in jQuery?

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!

Stellungnahme:
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