¿Hay realmente una diferencia en estas dos llamadas? Si usa getJSON, todavía tiene que declarar format=json
en la url ...
Y puede hacer lo mismo en $.get()
, e iterar a través del objeto JSON.
¿O estoy lejos de aquí?
¿Hay realmente una diferencia en estas dos llamadas? Si usa getJSON, todavía tiene que declarar format=json
en la url ...
Y puede hacer lo mismo en $.get()
, e iterar a través del objeto JSON.
¿O estoy lejos de aquí?
Los siguientes dos fragmentos son equivalentes:
$.get("/some/url", {data: "value"}, function(json) {
// use json here
}, "json")
$.getJSON("/some/url", {data: "value"}, function(json) {
// use json here
});
decir que una solicitud es para JSON
significa dos cosas:
Accept: application/json
Varias infraestructuras del lado del servidor (como Rails) detectan automáticamente el encabezado Accept
y gestionan la solicitud de forma adecuada. Si está utilizando un marco diferente o laminando el suyo, puede inspeccionar el encabezado Accept
para detectar el formato (en lugar de inspeccionar los parámetros).
También debo señalar que la razón por la que se agregó la solución de encabezado Accept fue para marcos que lo manejan con elegancia, haciendo que la comunicación entre jQuery y dichos marcos (por ejemplo, Rails) sea perfecta. –
¡Creo que la documentación lo explica con bastante claridad!
http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype
Cargar un control remoto página mediante una solicitud GET HTTP.
http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback
carga JSON datos utilizando una solicitud HTTP GET.
Recuerde, estas son sólo abstracciones del método .ajax
Pero todavía se puede usar $ .get para recibir datos JSON, ¿verdad? Si la página a la que llama devuelve un objeto JSON? – peirix
Claro, supongo, siempre y cuando especifiques el argumento 'data' como json. Si la página va a devolver json, ¿por qué no utilizar el método getJSON? De nuevo, estas son solo abstracciones para simplificar llamadas ajax, desde el método base .ajax. Están ahí para facilitarle las cosas, ¡no para complicarlas! – ScottE
He usado $ .get sin argumento de datos y funciona muy bien. El documento de API dice que el valor predeterminado para el argumento de datos es una "suposición inteligente", por lo que aparentemente jQuery está adivinando correctamente en mis casos de uso ;-) – Elisabeth
Las diferencias entre $ y $ .getJSOn .get están en parámetros:
Entonces, usando $ .get con dataType: JSON funcionaría exactamente igual que $ .getJSON.
Lo que debe declarar en la URL no tiene nada que ver con jQuery. Tampoco sería ese el caso para todos los sitios, ciertamente no para uno de los míos ;-) – NickFitz
Solo decía que tienes que declarar en la url que estás buscando un resultado JSON, incluso si estás usando getJSON. Y lo declararías en la url por $ .get() también. Me pregunto qué hace uno, que el otro no ... – peirix
En realidad ** está ** fuera de la pista aquí. al utilizar el método ** getJSON() **, ** NO ** tiene que aprobar explícitamente el tipo de datos, pero en el método ** get() ** tendrá ** de manera EXPECTABLE HASTA **. Mira el comentario anterior por yehuda. Cuenta toda la historia o visita [http://api.jquery.com/jQuery.getJSON/](http://api.jquery.com/jQuery.getJSON/) – kushalvm