Maison >interface Web >js tutoriel >Pourquoi ma requête jQuery AJAX JSONP ne parvient-elle pas à renvoyer les données d'une source inter-domaines ?

Pourquoi ma requête jQuery AJAX JSONP ne parvient-elle pas à renvoyer les données d'une source inter-domaines ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-19 08:51:02671parcourir

Why is my jQuery AJAX JSONP request failing to return data from a cross-domain source?

Créer une requête JSONP AJAX inter-domaines avec jQuery

Explication du problème

Lors de la tentative d'analyse des données d'un tableau JSON à l'aide de jQuery AJAX avec le code fourni, l'utilisateur ne reçoit aucune sortie.

Concept Explication

Les appels AJAX inter-domaines nécessitent que le service Web prenne en charge l'injection de méthode pour que JSONP fonctionne. Le code client semble valide, mais le problème peut résider dans le domaine de l'application Web et du service Web.

Lors de l'utilisation du dataType de jQuery : 'jsonp', un paramètre ?callback={some_random_dynamically_generated_method} est ajouté au URL de requête. Cette méthode agit comme un proxy dans l'objet window, similaire à :

window.some_random_dynamically_generated_method = function(actualJsonpData) {
  successCallback(actualJsonData); // Calls the success function passed to $.ajax
}

Modification côté serveur

Pour résoudre le problème, le code côté serveur doit être modifié pour envelopper le JSON. données dans un nom de fonction qui correspond à celui transmis avec la chaîne de requête. Par exemple, si la chaîne de requête inclut ?callback=my_callback_method, la réponse du serveur doit être :

my_callback_method({your json serialized data})

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
Article précédent:Objets en JavaScriptArticle suivant:Objets en JavaScript