Comment jQuery faire son cross-domain appels ajax et comment puis-je reproduire em avec mootools
dans mon éternelle lutte interne sur l'opportunité d'un séjour avec mootools, ou de passer à jQuery que j'ai trouvé sur le jQuery documentation quelque chose attira mon attention et c'est que jQuery peut demander un JSON à un autre domaine, qui est généralement interdit par le navigateur.
J'ai vu quelques solutions de contournement pour la croix-sous-domaine, mais jamais de la croix-domaine, et je suis vraiment ravie, j'ai d'abord pensé que j'étais liée au serveur, mais en expérimentant un peu plus j'ai seend que faire du très même JSON demande de jQuery docs sur Mootools ne fonctionne pas!
Cela fonctionne
jQuery:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
Ce n'est pas
Mootools:
var jsonRequest = new Request.JSON({url: "http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", onComplete: function(person, responseText){
alert(responseText);
}}).get({});
Comment puis-je reproduire ce comportement ? quelles en sont les causes ?
jQuery Doc: http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback
Mootols Doc: http://mootools.net/docs/Request/Request.JSON
OriginalL'auteur perrohunter | 2009-04-07
Vous devez vous connecter pour publier un commentaire.
Il est dit à droite sur la page du JSONP.
JSONP est un truc où le serveur, au lieu de retourner la réponse habituelle, l'enveloppe dans un appel de la méthode de l'utilisateur fourni par méthode, par exemple, au lieu de:
{"foo": "bar", "baz":"bah"}
Il serait de retour:
temporaryCallbackFunctionName({"foo": "bar", "baz":"bah"});
jQuery définit la temporaire de la fonction de rappel et insère un
<script src="..."></script>
élément, qui n'est pas limitée par la même la politique de l'origine.Lorsque le script est chargé, la fonction est exécutée et c'est tout.
L'inconvénient est que si le serveur est mal (ou piraté), il peut maintenant exécuter du code arbitraire dans votre navigateur.
Plus d'infos ici.
OriginalL'auteur Jaka Jančar
Vous pouvez utiliser JSONP dans MooTools à l'aide d'un plugin, JSONP. Elle est faite par Aaron Newton, l'une des principales MooTools développeurs.
OriginalL'auteur moff
Cela est inclus dans MooTools plus depuis v1.2.2 (sorti le 23 avril 2009).
Vérifier cette page de documentation pour plus d'info.
OriginalL'auteur
Il semble que vous ne pouvez pas le faire avec Mootools, selon son API docs et ce forum.
La raison de ce qui est limité est probablement en raison de Le Cross-site scripting attaques.
OriginalL'auteur Seb