я почти пришел к выводу, что вызовы jQuery ajax не работают. t работать с данными JSON в IE 8, что бы я ни пробовал. Я обнаружил, что могу использовать библиотеку jQuery 1.3.2, и это устранило проблему, но 1.4 просто не играл в мяч с запросами JSON ajax. Даже когда возвращенные данные JSON были настолько простыми, что не могло быть и речи о том, что они были в недопустимом формате. Например:
{"x":"a"}
Это было независимо от того, использовал ли я сервлет Java для возврата данных JSON или простой шаблонный текстовый файл. Независимо от dataType или contentType. Независимо от GET и POST. Независимо от того, использовал ли я $ .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);
}
})