jQuery Ajax,来自.NET服务器的奇怪响应

时间:2011-11-25 15:09:40

标签: jquery .net ajax response ajaxpro

我正在尝试用jQuery替换ajaxpro脚本,但是当我使用ajaxpro或jquery时,我从服务器获得的响应是​​我无法识别的。

这是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 个答案:

答案 0 :(得分: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