Domainübergreifende AJAX-JSONP-Anfragen mit jQuery erstellen
Beim Versuch, JSON-Array-Daten mithilfe von jQuery-Ajax domänenübergreifend zu analysieren, ist es wichtig, Folgendes zu tun Beachten Sie, dass der Remote-Server, der die Daten hostet, die Methodeninjektion unterstützen muss, damit JSONP ordnungsgemäß funktioniert.
In Ihrem Code initiiert der folgende Block eine AJAX-Anfrage mit dataType: 'jsonp':
$.ajax({ type: "GET", url: "http://10.211.2.219:8080/SampleWebService/sample.do", dataType: "jsonp", success: function (xml) { alert(xml.data[0].city); result = xml.code; document.myform.result1.value = result; }, });
Wenn jQuery diese Anfrage ausführt, hängt es ?callback={some_random_dynamically_generated_method} an die URL an. Diese Methode, die normalerweise an das Fensterobjekt angehängt ist, fungiert als Proxy und sieht in etwa so aus:
window.some_random_dynamically_generated_method = function(actualJsonpData) { // Calls the success callback successCallback(actualJsonData); }
Während Ihr clientseitiger Code korrekt erscheint, ist es unbedingt erforderlich, Ihren serverseitigen Code zu ändern, um ihn zu umschließen JSON-Daten mit dem über die Abfragezeichenfolge übergebenen Funktionsnamen. Wenn die Anforderungs-URL beispielsweise „?callback=my_callback_method“ enthält, sollte der Server mit JSON-Daten antworten, die in der folgenden Struktur verpackt sind:
my_callback_method({your json serialized data});
Dadurch wird sichergestellt, dass die JSON-Daten erfolgreich analysiert und Ihrem Client zur Verfügung gestellt werden -Seitencode.
Das obige ist der detaillierte Inhalt vonWie kann ich mit jQuery erfolgreich domänenübergreifende AJAX-JSONP-Anfragen stellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!