Question

Le $.getJSON() documentation indique:

  

Si l'URL spécifiée est sur un serveur distant, la demande est traitée comme JSONP au lieu. Voir la discussion du type de données jsonp dans .ajax de $ () pour plus de détails.

Le $.ajax() documentation pour les états de type de données jsonp (Souligné par l'auteur):

  

charges dans un bloc de JSON en utilisant JSONP. ajouter un supplément "? = Rappel?" à la fin de votre URL pour spécifier le rappel .

Il semble donc que si je l'appelle $.getJSON() avec une URL inter-domaines, le supplément « callback =? » paramètre doit se automatiquement ajouté. (D'autres parties du support de documentation cette interprétation.)

Cependant, je ne vois pas ce comportement. Si je ne fais pas le « rappel =? » explicitement, jQuery fait incorrectement un XMLHttpRequest (qui renvoie des données nulles puisque je ne peux pas lire la réponse inter-domaines). Si je fais l'ajouter explicitement, jQuery fait correctement une requête

Autres conseils

Essayez ceci:

var URL = "http://www.geonames.org/postalCodeLookupJSON" +
    "?postalcode=10504&country=US";
function alertResponse(data, status) {
    alert("data: " + data + ", status: " + status);
}
$.ajax({
    url: URL,
    dataType: 'jsonp',
    jsonpCallback: 'alertResponse',
});

Oui, je pense que vous avez mal compris. $.getJSON est un raccourci pour $.ajax({datatype: 'json'.... que la documentation dit. Il ne fait jamais un appel JSONP sauf si vous ajoutez le paramètre callback=?.

Je suis en utilisant le code ci-dessous,

$. Ajax ({     url: URL,     dataType: 'jsonp',     succès: function (données)     {      // faire quelque chose     }     Erreur: la fonction (jqXHR, textStatus, errorThrown) {},     jsonpCallback: 'login_callback', });

Mais, le rappel a parfois ajouté à la fin de l'url et parfois pas dans IE. Bien que son travail bien en chrome et FF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top