Demande JSON interdomaine?
Question:
Je suis en train d'utiliser JSON à travers des domaines, mais tout ce que je trouve est JSON analyseurs, je n'ai pas besoin...
J'ai lu qu'il est possible de faire des requêtes inter-domaine avec JSON,
mais jusqu'à présent, tout ce que je vois est implémentations utiliser XMLHttpRequest...
- ce qui signifie que vous ne pouvez pas utiliser des requêtes inter-domaine, au moins pas en dehors de IE 8...
J'ai été sur http://www.json.org/, mais tout ce que je trouve est soit analyseurs ou inutile.
Le meilleur que j'ai trouvé avec google à ce jour est
http://devpro.it/JSON/files/JSONRequest-js.html
mais c'est plutôt un désordre, ne fonctionne pas de la croix de domaine, et intra-domaine ni - ou plutôt pas du tout...
var the_object = {};
var http_request = new XMLHttpRequest();
http_request.open( "GET", url, true );
http_request.onreadystatechange = function () {
if ( http_request.readyState == 4 && http_request.status == 200 ) {
the_object = JSON.parse( http_request.responseText );
}
};
http_request.send(null);
source d'informationauteur Stefan Steiger | 2010-01-13
Vous devez vous connecter pour publier un commentaire.
Ce que vous pouvez faire inter-domaine est d'injecter un script comprennent:
Maintenant, le code renvoyé par cette demande sera exécutée immédiatement. Si vous voulez pour que, pour interagir avec votre code, vous pouvez vous assurer qu'il est retourné avec toutes les données enveloppé dans un appel de fonction:
Vous pouvez l'utiliser pour construire des Api, où l'on passe le nom d'une fonction de rappel comme une demande de paramètre querystring. Voici un exemple d'une telle API
JSON est juste une méthode de sérialisation. Il n'y a aucun rapport entre la méthode de la sérialisation et la question de savoir si ou non le navigateur va essayer de vous empêcher d'accéder à des données dans tous les domaines. (Ce qui explique pourquoi vous ne trouver que des analyseurs - il n'y a rien à JSON, à l'exception de l'encodage et du décodage).
XMLHTTPRequest est juste nommé XML HTTPRequest. Il n'a pas vraiment rien avoir à faire avec des fichiers XML. Il peut être utilisé pour envoyer des données de texte, de données encodé en JSON, ou toute autre méthode de sérialisation.
Il existe plusieurs méthodes pour accéder aux données de la croix de domaine. celui qui est décrit dans David Hedlund de réponse. D'autres peuvent être trouvés dans les réponses à des questions similaires (voir ici et ici).