我有Datatables的问题。 到目前为止,一切都像一个魅力,现在,从我不知道的原因,数据表停止在我的应用程序上工作。
我的数据表ajax调用正在返回:
DataTables warning: table id=section-list - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1
我的数据表init:
sections.find('table#section-list').dataTable({
"ajax": '/admin/page/get-section-list',
"columns": [
{"data": "SectionID"},
{"data": "SectionAlias"},
{"data": "Edit"},
{"data": "Delete"},
], aoColumnDefs: [
{
bSortable: false,
aTargets: [-1, -2, -3] // disable sorting on last three columns (icons)
}
]
});
和我的页面/获取部分列表操作
....
return new JsonModel(["data" => $sections]); // this is equivalent to echo json_encode() in basic php
我在Json Parser中测试了我的JSON,它是100%正常的,并且在此json之前没有先前的输出。
我正在使用DataTables 1.10.3和jQuery v1.10.2
答案 0 :(得分:0)
我在使用data.json文件时遇到了类似的问题,发现来自here的信息非常有帮助。特别是建议打开chrome dev工具,单击网络选项卡,然后再次尝试请求,以便您可以在网络时间轴中看到它。
在我的情况下,看起来我的split_vecs = d.map(lambda x: (x[0], np.split(x[1], 2)))
costs_per_split = [KMeansModel(model.Cs[i]).computeCost(split_vecs.map(lambda x: x[1][i])) for i in range(2)]
中的json文件仍然在重载请求尝试访问数据的同时被写入。在重新加载请求周围添加延迟以提供data.json时间来解决问题:
"ajax": '/path/to/data.json'
但很难知道最佳延迟设置应该是什么。因此,在写入文件时,我改变了将nodejs异步setTimeout(
function() {
$('#tableid').DataTable().ajax.reload(null, false);
}, 125);
中的数据写入同步settimeout()
的方式,而不是执行fs.writeFile()
(其工作正常)。
每个案例都会有所不同,但如果您知道数据源通常会返回有效的json,您可能需要检查数据源是否在尝试访问数据源的同时进行更改。