Ho appena aggiornato dalla versione 1.4 alla versione 1.5 di jQuery e ora le mie chiamate AJAX falliscono sempre con l'errore "etichetta non valida".jQuery 1.5 La chiamata AJAX fallisce con "etichetta non valida" per le richieste JSON
Un esempio di richiesta è:
jQuery.ajax({
async: false
, dataType: "json"
, error: function (xhr, status, error) { ... }
, success: function (data, status, xhr) { ... }
, type: "post"
, url: "ajax/request.asp"
});
In rete ho trovato questo errore viene generato quando il JSON restituito non è avvolto con callback jQuery (ad es jQuery1234({ "something": "abcd" })
Il problema è che sto tornando. un JSON, non un JSONP (e lo dichiaro nella richiesta AJAX), quindi perché devo specificare una richiamata nel JSON restituito?
Il 1.5 changelog non dice nulla su questo ... (O sono io che non posso leggi?)
Aggiornamento:
Questo è un esempio di un JSON non funziona:
{
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
}
E questo è lo stesso callback avvolto lavoro JSON:
jQuery1502710949228847014_1296739130498({
"esito":"Ok",
"centriCosto":[
{
"id":"1",
"descrizione":"Colazione"
},
{
"id":"2",
"descrizione":"Pranzo"
},
{
"id":"3",
"descrizione":"Cena"
}
]
})
proposito, Firebug dice che entrambi sono JSON validi (ed è molto esigente riguardo alla correttezza).
potrebbe essere un problema con il JSON in sé, ho notato che da quando 1.4 JQ è stata molto più stringenti sulla struttura JSON. Il mio primo progetto JSON del 2007 iniziò a mancare quando aggiorno il mio JQ, aprii l'output JSON e fui colpito da quanto male lo strutturassi. Puoi pubblicare il JSON? – picus
@picus: No, convalido il mio JSON contro più validatori ed è ok. Se implemento la callback JSONP, riprende a funzionare, quindi non è un problema con il formato. – Albireo
@picus: ho aggiunto un esempio di JSON non funzionante e funzionante. – Albireo