fonction de rappel parsing JSON en JQuery
Je suis nouveau sur JQuery et c'est peut-être une question de n00b. Et aussi mon anglais n'est pas la meilleure.
J'ai écrit un service dans mon application Google App Engine qui fournit des données au format JSON, qui fonctionne bien, mais je n'ai pas pu analyser que les données JSON à l'aide de JQuery:
var url= 'myapp.appspot.com/myservice.json?someparams';
$.getJSON(url, function(json){
alert("Success parsing JSON"); //I never reached this code
....
});
Après quelques jours de lecture, des postes et des tutoriels que je ressentais en ce SlideShare: http://www.slideshare.net/andymckay/cross-domain-webmashups-with-jquery-and-google-app-engine
Lors de la lecture de la diapositive 23 j'ai remarqué à propos de la "callback=?" paramètre et j'ai essayé le code dans la diapositive 42:
class MyJSONHandler(webapp.RequestHandler):
def get(self):
## Retrieve some data from DB or MemCached
jsonData = json.dumps(data)
if self.request.get('callback'):
self.response.out.write('%s(%s)' % (self.request.get('callback'), jsonData))
else:
self.response.out.write(jsonData)
Et dans la fonction JQuery:
$.getJSON(url+'&callback=?', function(json){
alert("Success parsing JSON"); //Now i'm here !!
....
});
Ma question est:
Pourquoi le "rappel" paramètre nécessaire pour faire ce travail? Quelle est la différence de l '?("MyJSON": [{"beaucoup de choses" : "de données"}])' fait??
Grâce à vous tous.
OriginalL'auteur alfonso.kim | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
La
callback
paramètre est utilisé pour mettre en œuvre JSONP.de jQuery
getJSON
méthode crée un<script>
balise qui pointent vers l'URL que vous lui donnez.L'URL de retour est prévu un appel à la fonction spécifiée dans le
callback
paramètre, de transmettre les données en tant que paramètre.Contrairement à la normale des requêtes AJAX, JSONP demandes peuvent être faites dans tous les domaines.
OriginalL'auteur SLaks
Si vous accédez à votre service à partir d'un autre domaine à l'aide d'AJAX, le navigateur ne va pas permettre cela. L'utilisation de cette technique permet de contourner par dynamiquement l'incorporation d'une balise script avec l'attribut src défini à l'URL demandée, et le corps du script appelle votre nom de la fonction passée en passant vos données.
Voici une bonne explication du processus: http://en.wikipedia.org/wiki/JSON#JSONP
OriginalL'auteur Matt King
Il est appelé JSONP.
Vous pouvez regarder ici: Qu'est-ce que JSONP?
Espère que cela aide
OriginalL'auteur alexl
La technique est appelée JSONP: JSON avec un Rembourrage et est utilisé pour contourner la de même la politique de l'origine.
OriginalL'auteur Felix Kling