Acabo de actualizar de la versión 1.4 a la versión 1.5 de jQuery, y ahora mis llamadas AJAX siempre fallan con el error "etiqueta no válida".jQuery 1.5 La llamada AJAX falla con la "etiqueta no válida" para las solicitudes JSON
Un ejemplo de solicitud es:
jQuery.ajax({
async: false
, dataType: "json"
, error: function (xhr, status, error) { ... }
, success: function (data, status, xhr) { ... }
, type: "post"
, url: "ajax/request.asp"
});
En la red he encontrado se eleva este error cuando el JSON devuelto no se envuelve con devolución de llamada de jQuery (por ejemplo jQuery1234({ "something": "abcd" })
El problema es que estoy volviendo. un JSON, no un JSONP (y lo indico en la solicitud AJAX), entonces ¿por qué debo especificar una devolución de llamada en el JSON devuelto?
El 1.5 changelog no dice nada sobre esto ... (O soy yo quien no puede leer?)
Actualización:
Este es un ejemplo de un JSON que no trabaja:
{
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
}
Y esto es lo mismo devolución de llamada-envuelta de trabajo JSON:
jQuery1502710949228847014_1296739130498({
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
})
Por cierto, Firebug dice que ambos son JSON válidos (y él es muy exigente con la corrección).
Podría ser un problema con el propio JSON, he notado que desde 1.4 JQ ha sido mucho más estrictos sobre la estructura JSON. Mi primer proyecto JSON del '07 comenzó a fallar cuando actualicé mi JQ, abrí la salida JSON y quedé impresionado de lo mal estructurado que estaba. ¿Puedes publicar el JSON? – picus
@picus: No, valido mi JSON contra múltiples validadores y está bien. Si implemento la devolución de llamada JSONP, comienza a funcionar nuevamente, por lo que no hay problema con el formato. – Albireo
@picus: He agregado un ejemplo de un JSON que no funciona y funciona. – Albireo