2010-10-08 20 views
6

Hemen hemen jQuery'nin ajax çağrılarının IE 8'deki JSON verileriyle çalışmamasına karar verdim. JQuery 1.3.2 kütüphanesini kullanabileceğimi ve bu sorunu çözdüğümü keşfettim, ancak 1.4 sadece JSON ajax istekleriyle topu oynamadı. Geri döndürülen JSON verileri o kadar basit olsa da, geçersiz bir formatta olduğu sorusu yoktu. Örneğin:Hata: jQuery 1.4, ajax/json, Firebug Lite ve IE 8

{"x":"a"} 

Bu bakılmaksızın JSON veri, veya basit, konserve metin dosyasını dönmek için bir Java sunucu hangisini kullanarak idi. DataType veya contentType öğesinden bağımsız olarak. GET vs POST'tan bağımsız olarak. $ .ajax veya $ .getJSON kullanıp kullanmadığına bakılmaksızın. Ve hepsi Firefox 3.6'da çalışıyor.

Daha sonra Firebug Lite ve IT WORKED referanslarına başvurmak için bana ağlamıştı! Birdenbire sorun ortadan kalktı. Yanıtda contentType (olduğu sunucuda) veya isteğinde belirttiğim dataType ile tinkering olursa olsun çalıştı.

Kodum gerçekte kullanmıyorsa bile Firebug Lite'a tekrar bağlanırsam sorun döner.

Bu tür davranışlar gören var mı, herkesin bir çözümü veya çözümü var mı? Firebug Lite'ı kullanmayı bırakmak zorunda kalmak istemem. Herhangi bir anlayış için teşekkürler.

$.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

Örnek koddaki linebreaks eksikliğinden dolayı çaylaklardan özür dileriz. Açıkçası bazı SSS'leri okumam gerek. – dnuttle

+0

Dosya barındırılıyor nerede? Firebug lite'yi çalıştırdığınızda, alanlar arası sorunları görüyor ve yanıtın boş olduğunu görüyorsunuz. –

+1

Gaaaah Bütün gün IE7/jQuery/JSON sorunları ile mücadele ettim ve Firebug Lite'un soruna neden olduğu ortaya çıktı. Onu dikkatime sunmak için +1. Şimdi çok ama çok sert bir şey yumruk atıyorum ... –

cevap

1

Aslında ettik: bu konularda eğer, İşte

8. Bir servlet'dir ajax çağrısı jQuery 1.4, Kundakçı Lite, JSON veri ve IE birleştirdiğinizde Yine sorun oluşur Aynı sorunu düz HTML yanıtlarıyla da gördüm.

0

... Şu anda çıkış doğru contentType için webservice alamayan ama şöyle benim javascript kodu değiştirerek jQuery son sürümünde $ .ajax() kullanmak mümkün olmuştur

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

fark .... JSON ayrıştırmak sonra servis METİN değil JSON bekliyoruz yapmak ve

d = $.parseJSON(d); 

bodge ama sabit olduğunu.