2012-08-01 31 views
0

我的問題是當我使用jQuery ajax get,我在響應身體獲取數據,但它不會傳遞到成功函數。我怎樣才能使它工作?jQuery Ajax獲取不會傳遞接收數據到Internet Explorer的成功函數

我想提出一個ajax放,但它並沒有在IE9工作(適用於其他瀏覽器),所以我改成了這樣只是爲了測試:

$.ajax({ 
     async : false, 
     type: 'PUT', 
     contentType: 'application/json', 
     url:updateUrl + "?_" + new Date().getTime(), 
     data: JSON.stringify(model), 
     cache: false, 
     dataType: "json", 
     dataFilter: function(data) { 
      var resp = eval('(' + data + ')'); 
      return resp; 
     }, 
     success: function(data, status, xhr) { 
      alert("success> " + data.property); 
      alert(typeof data); 
      r = resultResponse(data); 
     }, 
     error: function(data, status, xhr) { 
      alert("error> " + data.responseText); 
      try { 
       r = error($.parseJSON(data.responseText)); 
      } catch (err) { 
       //Handle error 
      } 
     } 
    }); 

數據警報爲未定義。我把數據發送正確,我的服務器端運行良好,併發送響應客戶端,但我得到的未定義,而不是數據。經過一些測試,我意識到這個問題:

當我捕捉網絡通信數據包在ie 9響應正文是我想要的。但是,成功功能無法處理它。如果需要,我可以提供更多關於我的服務器的信息(當我將數據寫入響應而不是在Java中使用jackson json mapper時,我可以使它工作 - 它正在工作,唯一的區別是沒有包含響應中的工作版本頭文件: 鍵值 內容類型的應用程序/ JSON;字符集= UTF8)

我認爲,問題可以在客戶端處理,我認爲不與服務器端。 任何想法?

編輯:我想,樣式:

$.ajax({url: "/url", 
    dataType: "text", 
    success: function(text) { 
    json = eval("(" + text + ")"); 
    // do something with JSON 
    } 
}); 

然而響應頭仍然:

密鑰值 內容類型的應用/ JSON;字符集= UTF8

+0

你不小心在你的問題題目中動詞。 – 2012-08-01 19:15:09

+0

我改變了標題。 – kamaci 2012-08-01 19:26:25

回答

0

問題是錯誤的字符集。它是UTF(而不是UTF-8)。

相關問題