2009-09-19 42 views
1

我有一個簡單的$ .ajax請求,我試圖在ASP.Net MVC應用程序中獲取一些HTML內容。在Firefox上使用Jquery + ASP.Net MVC獲取parserror

 // Load the claim table 
    function GetClaimTable() { 
     $.ajax({ 
      type: "GET", 
      url: "claimtable", 
      data: {}, 
      datafilter: null, 
      dataType:'text', 
      success: function(msg){ 
       alert(msg); 
       $("#claimTable").html(msg.responseText); 
      }, 
      error: function(msg, sdf, sdd) { 
       alert(sdf); 
       alert(sdd); 
      } 
     }); 

但我得到一個parseerror代替。該調用是成功的,因爲我在firefox中看到了200 OK,並且錯誤包含XmlHttpRequest對象,該對象在responseText屬性中具有正確的數據。

該代碼在IE中運行良好,但在Firefox中失敗。 url聲明表是一個簡單的MVC Action。

我在這裏讀到jQuery/ASP MVC -- parsererror in "$.ajax" calls,這是由於在jquery 1.3.2中解決了一個錯字。但我有1.3.2,我得到這個錯誤。

任何幫助?

+0

您可以發佈全解析錯誤FF給你 – 2009-09-19 18:52:17

+0

沒有充分parsererror。這就是全部。這是一個字符串:「parsererror」 – 2009-09-19 19:14:45

回答

0

我終於明白了爲什麼會發生這種情況。原因是我編寫的ajaxSetup更加流暢地處理我的jQuery web服務請求。顯然有些東西是錯的,即使我重寫了我的新函數中的設置併發生了parseError。我刪除了ajaxSetup,現在情況很好。

這是摧毀我生命3個小時的功能。

$.ajaxSetup({ 
    type: "POST", 
    cache:false, 
    contentType:"application/json;charset=utf-8", 
    data:"{}", 
    dataFilter: function(data) { 
     var msg; 

     if (typeof (JSON) !== 'undefined' && 
      typeof (JSON.parse) === 'function') 
      msg = JSON.parse(data); 
     else 
      msg = eval('(' + data + ')'); 

     if (msg.hasOwnProperty('d')) 
      return msg.d; 
     else 
      return msg; 
     } 
}); 

看起來很無辜。是嗎?

+0

它說utf-9 ...? – 2009-12-31 00:32:15

+0

這是一個錯字,我修好了。 – 2009-12-31 07:05:09

-1

不需要做msg.responseText。 msg本身就是響應文字

+0

嗯......就像我說的要求是失敗的。在錯誤函數msg中有一個responseText屬性。如果它能成功就不會有它。 – 2009-09-19 19:14:08

0

如果您試圖從服務器獲取HTML,爲什麼要指定dataType:'text'?你的動作發回的ContentType標題是什麼?它看起來好像在服務器發送的ContentType頭和實際內容之間存在一些不一致。

+0

我也嘗試過contentType HTML。我最終使用了文本,因爲這是一種不應該被解析的contentType。 – 2009-09-20 00:41:37