Maison >interface Web >js tutoriel >Comment puis-je réussir à effectuer des requêtes AJAX JSONP inter-domaines avec jQuery ?

Comment puis-je réussir à effectuer des requêtes AJAX JSONP inter-domaines avec jQuery ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 05:28:02351parcourir

How Can I Successfully Make Cross-Domain AJAX JSONP Requests with jQuery?

Faire des requêtes AJAX JSONP inter-domaines avec jQuery

Lorsque vous essayez d'analyser les données d'un tableau JSON à l'aide de jQuery ajax cross-domain, il est essentiel de notez que le serveur distant hébergeant les données doit prendre en charge l'injection de méthode pour que JSONP fonctionne correctement.

Dans votre code, le bloc suivant initie une requête AJAX en utilisant 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;
    },
});

Lorsque jQuery exécute cette requête, il ajoute ?callback={some_random_dynamically_generated_method} à l'URL. Cette méthode, généralement attachée à l'objet window, agit comme un proxy et ressemble à ceci :

window.some_random_dynamically_generated_method = function(actualJsonpData) {
    // Calls the success callback
    successCallback(actualJsonData);
}

Bien que votre code côté client semble correct, il est impératif de modifier votre code côté serveur pour envelopper votre Données JSON avec le nom de la fonction transmis via la chaîne de requête. Par exemple, si l'URL de la requête inclut ?callback=my_callback_method, le serveur doit répondre avec des données JSON enveloppées dans la structure suivante :

my_callback_method({your json serialized data});

Cela garantit que les données JSON sont analysées avec succès et mises à la disposition de votre client. -code latéral.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn