2013-05-02 111 views
0

我有一個應用程序,我不能在IE 7(實際上,在IE 7模式下運行的IE 10)工作。IE7 AJAX只返回部分響應

當我嘗試使用jQuery執行AJAX GET請求時出現問題。在較新的瀏覽器中,響應主體類似於30 000個字符的HTML代碼,但在IE7中,響應縮短爲4300個字符。我無法找到任何跡象表明IE7的響應主體對其大小有限制。任何人都知道發生了什麼事?更好;有誰知道解決方案?

服務器端實現返回一個ASP.NET MVC 4局部視圖(如果它是重要的)。客戶端代碼看起來像這樣。

$.get(settings.url_root + "?" + params, // typically localhost/getData?id=1234&id=5678 
     null, 
     // success 
     function (html) {      
      // html is ~4300 chars, should be ~30000 
     }, 
     'html' 
) 
.fail(function() { 
     // display error message 
}); 
+0

我真的認爲這是一個服務器端配置問題。也許響應的最大長度,服務器腳本超時。你看了一下嗎? (我真的不鼓勵你使用Ajax渲染部分視圖)。 – gustavodidomenico 2013-05-02 12:08:24

+0

@gustavodidomenico是的,你是對的。我發佈了下面的解決方案,這是一個服務器端的問題,只要考慮到可以發送到IE7的東西可以考慮。 – 2013-05-03 10:50:16

回答

0

原來,問題與AJAX或jQuery無關,而是與IE7如何渲染某些字符有關。仔細檢查後,我發現在響應中,某些行包含零字符'\ 0',導致IE7停止呈現。服務器上的簡單returnValue.Replace("\0", String.Empty)解決了我所有的問題。