数据表使用 XML 作为服务器端响应

Datatables use XML for serverside response

我有一个自定义 Web 服务,我已创建该服务来响应数据表调用(以处理分页和搜索)

根据文档,我尝试使用 ajax.dataSrc 作为函数来将 xml 数据解析为预期格式。

$("#MyTable").dataTable({
        serverSide: true,
        ajax: {
            url: urlRoot + "/WS/XXXX/YYYYY",
            dataSrc: function (data) {
                console.log("data");
                console.log(data);
            },
            type: "POST"
        }
    });

然而,甚至没有调用 dataSrc 函数,我得到了一个消息框警报,提示 JSON 无效 ...

回答如下:

问题是数据表 jquery ajax 调用配置了数据表插件本身的 dataType: "json",导致 ajax 调用陷入错误服务器 header 以 text/html 内容类型回复的情况...

解决方案是在 ajax 选项中添加 dataType: "text", 来覆盖此行为,如下所示:

$("#IncidentTable").dataTable({
        serverSide: true,
        ajax: {
            url: urlRoot + "/WS/XXXX/YYYYY",
            dataType: "text",
            dataSrc: function (data) {
                console.log("data");
                console.log(data);
            },
            type: "POST"
        }
    });

然后正确调用dataSrc,允许我们手动解析数据。