Problema con ajax y jQuery

433 views
Skip to first unread message

Pedro Antonio

unread,
Sep 29, 2011, 5:35:05 AM9/29/11
to api-11870
Buenos días,

Tengo un problema a la hora de devolver el objeto json a través de una
llamada ajax con jquery, no entiendo qué puedo estar haciendo mal, el
código es el siguiente:

$.ajax({
type: "GET",
url: 'http://api.11870.com/api/v2/search?
appToken=XXX&authSign=XXX&lon=-3.700345&radius=10.0&lat=40.41669&alt=json&order=distance&categoryOp=or&category=restaurantes&count=200',
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
async: false,
success: function (data) {
alert('correcto');
},
error: function (xhr, err) {
alert("readyState: " + xhr.readyState + "\nstatus: " +
xhr.status);
alert("responseText: " + xhr.responseText);
}
});

El caso es que en Internet Explorer 8 si que funciona, pero en el
resto de navegadores me da que el "readyState=4" y "status=0"

He probado a devolver el objeto de otra forma pero tampoco me
funciona:

$.getJSON('http://api.11870.com/api/v2/search?
appToken=XXX&authSign=XXX&lon=-3.700345&radius=10.0&lat=40.41669&alt=json&order=distance&categoryOp=or&category=restaurantes&count=200',
function (data) {
alert('correcto');
});

¿qué hago mal?

Víctor Muñoz

unread,
Sep 29, 2011, 6:31:24 AM9/29/11
to api-11870
Hola Pedro Antonio,

Hemos probado tu primera versión con Firefox y sí que nos funciona,
¿qué versión de jquery estás utilizando? Nosotros 1.6.4.

Un saludo,

Pedro Antonio

unread,
Sep 29, 2011, 7:28:17 AM9/29/11
to api-11870
Hola Victor, muchas gracias por responder tan pronto:

Si, efectivamente con el dataType:jsonp si que funciona, pero mi
objetivo es que el dataType sea json (en el primer post me he
equivocado y he puesto jsonp en vez de json en el dataType).

Con esa corrección, el código que no funciona es:

$.ajax({
type: "GET",
url: 'http://api.11870.com/api/v2/search?
appToken=XXX&authSign=XXX&lon=-3.700345&radius=10.0&lat=40.41669&alt=json&o
rder=distance&categoryOp=or&category=restaurantes&count=200',
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
alert('correcto');
},
error: function (xhr, err) {
alert("readyState: " + xhr.readyState + "\nstatus: " +
xhr.status);
alert("responseText: " + xhr.responseText);
}
});

Es extraño porque con el dataType:jsonp si que funciona, pero claro,
yo necesito hacer una llamada síncrona porque quiero que la llamada
ajax está dentro de una función javascript, y que el valor que
devuelva dicha función se obtenga dentro de la función que se llama en
el "success" de la llamada ajax. De ahí que no me valga el jsonp
asíncrono (que eso si funciona).

Yo también uso la version 1.6.4 de jQuery

Por otro lado, ¿existe alguna otra forma de obtener el objeto json
distinta a las dos que yo propongo?.

Un saludo y gracias de nuevo.




On 29 sep, 12:31, Víctor Muñoz <victormferr...@gmail.com> wrote:
> Hola Pedro Antonio,
>
> Hemos probado tu primera versión con Firefox y sí que nos funciona,
> ¿qué versión de jquery estás utilizando? Nosotros 1.6.4.
>
> Un saludo,
>
> On 29 sep, 11:35, Pedro Antonio <fr4nziska...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Buenos días,
>
> > Tengo un problema a la hora de devolver el objeto json a través de una
> > llamada ajax con jquery, no entiendo qué puedo estar haciendo mal, el
> > código es el siguiente:
>
> >     $.ajax({
> >         type: "GET",
> >         url: 'http://api.11870.com/api/v2/search?
> > appToken=XXX&authSign=XXX&lon=-3.700345&radius=10.0&lat=40.41669&alt=json&o rder=distance&categoryOp=or&category=restaurantes&count=200',
> >         contentType: "application/json; charset=utf-8",
> >         dataType: "jsonp",
> >         async: false,
> >         success: function (data) {
> >             alert('correcto');
> >         },
> >         error: function (xhr, err) {
> >             alert("readyState: " + xhr.readyState + "\nstatus: " +
> > xhr.status);
> >             alert("responseText: " + xhr.responseText);
> >         }
> >     });
>
> > El caso es que en Internet Explorer 8 si que funciona, pero en el
> > resto de navegadores me da que el "readyState=4" y "status=0"
>
> > He probado a devolver el objeto de otra forma pero tampoco me
> > funciona:
>
> >     $.getJSON('http://api.11870.com/api/v2/search?
> > appToken=XXX&authSign=XXX&lon=-3.700345&radius=10.0&lat=40.41669&alt=json&o rder=distance&categoryOp=or&category=restaurantes&count=200',
Reply all
Reply to author
Forward
0 new messages