Bug com combinação de: jQuery 1.4, ajax / json, Firebug Lite e IE 8
Eu tinha acabado de concluir que as chamadas ajax do jQuery não funcionariam com dados JSON no IE 8, não importa o que eu tentasse. Eu descobri que podia usar a biblioteca jQuery 1.3.2 e isso corrigia o problema, mas a 1.4 simplesmente não brincava com solicitações JSON ajax. Mesmo quando os dados JSON retornados eram tão simples que não havia dúvida de que estavam em um formato inválido. Por exemplo:
{"x":"a"}
Isso independentemente de eu ter usado um servlet Java para retornar os dados JSON ou um arquivo de texto simples e enlatado. Independentemente do dataType ou contentType. Independentemente do GET vs POST. Independentemente de eu ter usado $ .ajax ou $ .getJSON. E tudo funciona no Firefox 3.6.
Então me dei conta de tirar a referência ao Firebug Lite e FUNCIONOU! De repente, o problema desapareceu. Funcionou independentemente de mexer com o contentType na resposta (no servlet que é) ou com o dataType que eu especifico na solicitação.
O problema retornará se eu vincular ao Firebug Lite novamente ... mesmo que meu código nunca o use.
Alguém viu esse tipo de comportamento e alguém tem uma correção ou solução alternativa? Eu odiaria ter que parar de usar o Firebug Lite. Obrigado por qualquer insight. Novamente, o problema ocorre apenas quando você combina jQuery 1.4, Firebug Lite, dados JSON e IE 8.
Aqui está a chamada ajax para um servlet, se isso importa:
$.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);
}
})