我正在试图弄清楚如何在DataTables 1.10中使用ajax选项。对于我的生活,我无法弄清楚它是如何运作的。
我的服务器端请求在查询时会响应一个对象,其中一个元素是一个与我的表的列布局匹配的数组。我正在使用的初始化代码是:
$("#history-table").DataTable({
'ajax': {
'url': "/some-path-here",
'type': "POST",
'data': { 'pid': pID } // Some data that the server needs
},
'columns': [
{ data: 0},
{ data: 1},
{ data: 2},
{ data: 3},
{ data: 4},
{ data: 5}
],
'dataSrc': 'history',
'autoWidth': false,
'lengthChange': false,
'ordering': false,
'pageLength': 50
});
我的AJAX调用返回的对象如下所示(每个元素都是一个字符串):
{
'success': True,
'history': [
["John Doe", "02 Mar 2016", "Area 1", "Value A", "May 15", "200"],
["Jane Doe", "29 Feb 2016", "Area 2", "Value B", "Apr 15", "100"],
[ ... ]
]
}
我的服务器端逻辑正在处理并正确返回,但是我从缩小的DataTables代码中收到了一条无用的错误消息:
TypeError:f未定义
我怎样才能弄清楚我的真正问题是什么?有什么明显的东西我不见了吗? DataTables文档不是很有用,因为它们的所有AJAX示例似乎都是从文本文件中提取的。
答案 0 :(得分:2)
dataSrc
应该是ajax
选项的子属性。columns
您的JSON响应似乎无效。应该是正确的回应
{
"success": true,
"history": [
["John Doe","02 Mar 2016","Area 1","Value A","May 15","200"],
["Jane Doe","29 Feb 2016","Area 2","Value B","Apr 15","100"]
]
}
更正后的代码如下所示:
$("#history-table").DataTable({
'ajax': {
'url': "/some-path-here",
'type': "POST",
'data': { 'pid': pID },
'dataSrc': 'history'
},
'autoWidth': false,
'lengthChange': false,
'ordering': false,
'pageLength': 50
});
请参阅this jsFiddle以获取代码和演示。