différence entre $ .getJSON et $ .get

Y a-t-il vraiment une différence entre ces deux appels? Si vous utilisez getJSON, vous devez toujours déclarer format=json dans l’URL …

Et vous pouvez faire la même chose dans $.get() et parcourir l’object JSON.

Ou suis-je loin d’ici?

Les deux extraits suivants sont équivalents:

 $.get("/some/url", {data: "value"}, function(json) { // use json here }, "json") $.getJSON("/some/url", {data: "value"}, function(json) { // use json here }); 

Dire qu’une requête concerne JSON signifie deux choses:

  • jQuery envoie un en-tête Accept: application/json
  • jQuery interprète la réponse entrante, la convertit en un object JavaScript et la transmet au rappel (afin que vous n’ayez pas à vous soucier de eval ou d’un autre mécanisme de conversion).

Un certain nombre de frameworks côté serveur (tels que Rails) détecte automatiquement l’en-tête Accept et gère la requête de manière appropriée. Si vous utilisez un cadre différent ou faites défiler le vôtre, vous pouvez inspecter l’en-tête Accept pour détecter le format (au lieu d’inspecter les parameters).

Je pense que la documentation l’explique assez clairement!

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

Chargez une page distante à l’aide d’une requête HTTP GET.

http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

Charger des données JSON à l’ aide d’une requête HTTP GET.

Rappelez-vous, ce ne sont que des abstractions de la méthode .ajax

Les différences entre $ .getJSOn et $ .get sont exprimées en parameters:

  1. $ .getJSON accepte les objects simples en tant que données, tandis que $ .get accepte les objects simples ou une chaîne.
  2. $ .get a un paramètre dataType.

Ainsi, utiliser $ .get avec dataType: JSON fonctionnerait exactement de la même manière que $ .getJSON.