数据表无效的JSON响应

时间:2014-12-25 15:01:37

标签: javascript jquery json datatable

我有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

1 个答案:

答案 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,您可能需要检查数据源是否在尝试访问数据源的同时进行更改。

相关问题