2010-10-08 3 views
6

Właśnie doszedłem do wniosku, że wywołania ajax jQuery nie będą działały z danymi JSON w IE 8, bez względu na to, co próbowałem. Zauważyłem, że mogę użyć biblioteki jQuery 1.3.2 i to rozwiązało problem, ale 1.4 po prostu nie zagrałoby w piłkę z żądaniami ajax JSON. Nawet gdy zwrócone dane JSON były tak proste, że nie było kwestii, że są one w nieprawidłowym formacie. Na przykład:Błąd z połączeniem: jQuery 1.4, ajax/json, Firebug Lite i IE 8

{"x":"a"} 

To był niezależnie od tego, czy użyłem apletu Java, aby powrócić do danych JSON, albo prosty, konserwy plik tekstowy. Niezależnie od dataType lub contentType. Niezależnie od GET vs POST. Niezależnie od tego, czy użyłem $ .ajax, czy $ .getJSON. Wszystko działa w Firefoksie 3.6.

Potem przyszło mi do głowy, że mogę odnieść wzmiankę o Firebug Lite i IT WORKED! Nagle problem zniknął. To działało bez względu na majsterkowanie z parametrem contentType w odpowiedzi (w serwecie) lub typem danych I określonym w żądaniu.

Problem powraca, jeśli ponownie połączę się z Firebug Lite ... nawet jeśli mój kod nigdy go nie używa.

Czy ktoś widział tego rodzaju zachowanie i czy ktoś ma poprawkę lub obejście tego problemu? Nie chciałbym przestać używać Firebug Lite. Dzięki za wszelki wgląd. Znowu problem występuje tylko wtedy, gdy można połączyć jQuery 1.4, Firebug Lite, dane JSON i IE 8.

Oto wezwanie ajax do serwletu, jeśli ma to znaczenie:

$.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); 
} 
}) 
+0

Przeprosiny od nowicjusza za brak linków w przykładowym kodzie. Najwyraźniej muszę przeczytać kilka często zadawanych pytań. – dnuttle

+0

Skąd plik jest hostowany? Po uruchomieniu Firebug lite prawdopodobnie widzisz problemy z wieloma domenami, a odpowiedź jest pusta. –

+1

Gaaaah Przez cały dzień walczyłem z problemami z IE7/jQuery/JSON i okazało się, że przyczyną problemu jest Firebug Lite. +1 za zwrócenie mi uwagi. Teraz jestem gotów uderzyć coś bardzo, bardzo mocno ... –

Odpowiedz

1

mam faktycznie Widziałem ten sam problem z zwykłymi odpowiedziami HTML.

0

Nie mogę w tej chwili uzyskać usługa wyprowadzania poprawne contentType, ale byłem w stanie wykorzystać $ .ajax() w najnowszej wersji jQuery modyfikując mój kod javascript następująco ...

$.ajax({ 
cache: false, 
url:"http://localhost:8080/Performance_Reporting/TestServlet", 
type:"GET", 
contentType: "application/json", 
dataType: "text", 
timeout:30000, 
success: function(d, status, req) 
{ 
    $("#result").text($.parseJSON(d).x); 
}, 
error: function(req, status, err) 
{ 
    $("#result").text(req.responseText); 
} 
}) 

różnica jest uczynić serwis oczekiwać TEXT nie JSON, a następnie analizować JSON ....

d = $.parseJSON(d); 

Bodge, ale stałe.

Powiązane problemy