2011-11-25 25 views
1

我試圖替換使用jQuery的腳本AjaxPro的,但無論是使用還是AjaxPro的jQuery的時候,我從服務器獲取我的反應奇怪的反應是什麼我不承認。jQuery的阿賈克斯,從.NET服務器

這是jQuery的電話:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("X-AjaxPro-Method", "ItemRetrieve"); 
     xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 
    }, 
    success: function(responseText) { 
     console.log(responseText); 
    } 
}) 

這是奇怪的反應:

[0,"\r\n\r\n<div id=\"content\">test</div>\r\n "];/* 

我期待HTML或XML作爲回報,但這似乎是一個數組? 我不明白逃避和奇怪的結局。我試着將dataType設置爲json,但它不是json,不是html,也許是javascript?服務器響應內容類型似乎設置爲文本。

所以我的問題是,我如何使用這個響應,HTML,或將其轉換爲HTML?

回答

1

不指定dataType,jQuery讓它接收來自AJAX調用回數據的格式最好的猜測。 90%的時間是正確的。其他時候需要一點幫助。

試試這個:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/ajaxpro/CMS.ItemRetrieve.ashx", 
    data: jsonData, 
    dataType: "html", // Explicitly set the return data type 
    ... 
}); 

More information here

+0

感謝您的答覆,這是我想的第一件事。而且即時通訊仍然會回覆相同的奇怪迴應,並在響應頭文件中獲得相同的內容類型。 「Content-Type \t text/plain; charset = utf-8」。 –