Я только что пришел к выводу, что вызовы jQuery ajax не будут работать с данными JSON в IE 8, что бы я ни пытался. Я обнаружил, что могу использовать библиотеку jQuery 1.3.2, и это решило проблему, но 1.4 просто не будет играть в мяч с запросами JSON ajax. Даже когда возвращаемые данные JSON были настолько просты, что не могло быть и речи о том, что они находятся в неверном формате. Например:
{"x":"a"}
Это было независимо от того, использовал ли я сервлет Java для возврата данных JSON, или простой, стандартный текстовый файл. Независимо от dataType или contentType. Независимо от ПОЛУЧИТЬ против ПОЧТЫ. Независимо от того, использовал ли я $ .ajax или $ .getJSON. И все это работает в Firefox 3.6.
Затем до меня дошло, что я взял ссылку на Firebug Lite, и ЭТО РАБОТАЛО! Внезапно проблема исчезла. Он работал независимо от того, как возился с contentType в ответе (в сервлете, который есть) или с dataType, который я указал в запросе.
Проблема возвращается, если я снова ссылаюсь на Firebug Lite ... даже если мой код никогда не использует его.
Кто-нибудь видел такое поведение, и есть ли у кого-нибудь исправление или обходной путь? Я не хотел бы, чтобы перестали использовать Firebug Lite. Спасибо за понимание. Опять же, проблема возникает только тогда, когда вы объединяете jQuery 1.4, Firebug Lite, данные JSON и IE 8.
Вот вызов ajax сервлету, если он имеет значение:
$.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);
}
})