【问题标题】:jQuery Ajax, weird response from .NET serverjQuery Ajax,来自 .NET 服务器的奇怪响应
【发布时间】:2023-03-12 17:22:02
【问题描述】:

我正在尝试用 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?

【问题讨论】:

    标签: jquery .net ajax response ajaxpro


    【解决方案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

    【讨论】:

    • 感谢您的回复,这是我尝试的第一件事。而且我仍然在响应标头中返回相同的奇怪响应和相同的内容类型。 “内容类型文本/纯文本;charset=utf-8”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多