2012-08-02 129 views
4

當我在Internet Explorer 9中使用jQuery ajax時,我在響應主體中獲取數據,但它不會傳入成功函數。我怎樣才能使它工作?Jquery Ajax在Internet Explorer中不起作用

例如:

... 
    $.ajax({ 
     async : false, 
     type: 'PUT', 
     contentType: 'application/json', 
     url: updateUrl, 
     data: JSON.stringify(model), 
     dataType: 'json', 
     success: function(data) { 
      console.log("Here!");//it comes here 
      console.log(data);//it logs undefine at ie, firefox and etc is logging data 
      r = resultResponse(data); 
     }, 
     error: function(data) { 
      try { 
       r = error($.parseJSON(data.responseText)); 
      } catch (err) { 
       //Handle error 
      } 
     } 
    }); 
... 

我調試網絡,看到身體的反應是:

{"message":"Connection is successful","status":"success"} 

但是數據在成功函數在Internet Explorer的不確定。

任何想法?

PS 1:奇怪的是,當我從服務器發送數據而沒有設置響應頭的內容類型它的作品?

PS 2:我的響應頭如下:

Key Value 
Response HTTP/1.1 200 OK 
Server Apache-Coyote/1.1 
Content-Type application/json;charset=UTF8 
Transfer-Encoding chunked 
Date Thu, 02 Aug 2012 15:50:44 GMT 
+2

爲什麼'async:false'? – Flash 2012-08-02 06:43:52

+0

嘗試contentType:'json' – 2012-08-02 06:46:11

+0

@ lukas.pukenis仍然是相同的。 – kamaci 2012-08-02 06:48:22

回答

4

截至輸出看到我的字符集是UTF8而不是UTF8。問題在於服務器端。

0

這可能是過分的要求,但你可以嘗試替代完整$.ajax呼叫轉變爲$.getJSON? 瀏覽器執行起來會簡單得多,因爲您的問題可能出在您爲ajax調用所做的衆多設置和配置之一。

保持它的簡單,你可以:

$.getJSON(updateUrl, JSON.stringify(model), function(data){ 
    console.log(data); 
}); 

如果您需要檢查上面的getJSON,檢查here