Avevo appena concluso che le chiamate ajax di jQuery non funzionavano con i dati JSON in IE 8, indipendentemente da ciò che ho provato. Ho scoperto che potevo usare la libreria jQuery 1.3.2 e questo risolve il problema, ma 1.4 semplicemente non giocherebbe con le richieste Ajax di JSON. Anche quando i dati JSON restituiti erano così semplici che non c'era dubbio che fosse in un formato non valido. Per esempio:Bug con combinazione di: jQuery 1.4, ajax/json, Firebug Lite e IE 8
{"x":"a"}
Questo è stato indipendentemente dal fatto che ho usato una servlet Java per restituire i dati JSON, o un semplice file di testo, in scatola. Indipendentemente da dataType o contentType. Indipendentemente da GET vs POST. Indipendentemente dal fatto che io abbia usato $ .ajax o $ .getJSON. E tutto funziona in Firefox 3.6.
Poi mi sono reso conto di prendere il riferimento a Firebug Lite e IT WORKED! All'improvviso il problema svanì. Ha funzionato indipendentemente dal problema con contentType nella risposta (nel servlet) o nel dataType che ho specificato nella richiesta.
Il problema si ripresenta se collego di nuovo Firebug Lite ... anche se il mio codice non lo utilizza mai.
Qualcuno ha visto questo tipo di comportamento e qualcuno ha una soluzione o una soluzione? Odio dover smettere di usare Firebug Lite. Grazie per qualsiasi intuizione. Anche in questo caso, il problema si verifica solo quando si combinano jQuery 1.4, Firebug Lite, i dati JSON, e IE 8.
Ecco la chiamata AJAX a un servlet, se è importante:
$.ajax({
cache: false,
url:"http://localhost:8080/Performance_Reporting/TestServlet",
type:"GET",
contentType: "application/json",
dataType: "json",
timeout:30000,
success: function(d, status, req)
{
$("#result").text(d.x);
},
error: function(req, status, err)
{
$("#result").text(req.responseText);
}
})
Scuse dal principiante per la mancanza di interruzioni di riga nel codice di esempio. Chiaramente ho bisogno di leggere alcune domande frequenti. – dnuttle
Da dove viene ospitato il file? Quando esegui Firebug Lite, probabilmente stai riscontrando problemi interdominio e la risposta è vuota. –
Gaaaah Ho avuto problemi con IE7/jQuery/JSON tutto il giorno e si è scoperto che Firebug Lite causava il problema. +1 per averlo portato alla mia attenzione Ora vado a dare qualcosa di molto, molto difficile ... –