数据表使用 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,允许我们手动解析数据。
我有一个自定义 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,允许我们手动解析数据。