JS数据表|获取数据时出现未知警告

时间:2017-04-23 15:56:54

标签: jquery ajax datatable server-side

我试图使用具有服务器端功能的数据表。但当它试图获取数据给我这个错误;解雇后,正确地重新加载数据。

DataTables warning: table id=clientTable -

Warning gif

正如你所看到的;没有对警告的解释。此外,我没有任何控制台警告。这是我的代码:

表格HTML

<table class="table table-striped table-hover table-bordered" id="clientTable">
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Phone</th>
            <th>Mail</th>
            <th>Date</th>
            <th>Auto</th>
        </tr>
    </thead>
</table>

数据表初始化

$('#clientTable').dataTable({
    "iDisplayLength": 20,
    "processing": true,
    "serverSide": true,
    "ajax": clientApiConstant,
    "columns": 
    [
        { "data": "id",},
        { "data": "name" },
        { "data": "phone" },
        { "data": "mail" },
        { "data": "date" },
        { "data": "auto" }
    ]
});

客户端Api响应

{
    "data": [
    {
      "id": 2,
      "name": "John Doe",
      "date": "2017-04-04T00:00:00+0000",
      "mail": "arda@asd.com",
      "phone": "123123123",
      "auto": true
    },
    {
      "id": 3,
      "name": "Doe John",
      "date": "2017-04-22T00:00:00+0000",
      "mail": "nihatcan@asd.com",
      "phone": "234234234",
      "auto": false
    }
  ],
  "recordsTotal": 2,
  "recordsFiltered": 2,
  "error": []
}

回应Dipak的回答;这是我的datatables.js失败的地方:

function K(a, b, c, d) {
        c = "DataTables warning: " + (a ? "table id=" + a.sTableId +
        " - " : "") + c;
        d && (c += ". For more information about this error, please see http://datatables.net/tn/" + d);
        if (b)
            E.console && console.log && console.log(c);
        else if (b = m.ext, b = b.sErrMode || b.errMode, a && s(a, null, "error", [a, d, c]), "alert" == b)
            alert(c);
        else {
            if ("throw" == b)
                throw Error(c);
            "function" == typeof b && b(a, d, c)
        }
    }

at&#34; function&#34; == typeof b&amp;&amp; b(a,d,c)线;第1763行@ 1.10.15

2 个答案:

答案 0 :(得分:1)

这是您的问题的解释

当jQuery落入其错误回调处理程序(此回调内置于DataTables)时会发生这种情况,这通常发生在服务器响应除2xx HTTP状态代码之外的任何内容时。例如,服务器可能会回复404 Not Found表示请求的文件在给定的URL上不可用,或者500 Internal Error表示服务器在处理请求时遇到错误。

解决方案: 如果您愿意接受错误(例如,如果您无法更改后端系统以修复错误),但不希望最终用户看到alert()消息,则可以更改DataTables的错误报告机制以进行抛出浏览器控制台出现Javascript错误,而不是提醒它。这可以使用:

完成
jar

有关详情,请查看: https://datatables.net/manual/tech-notes/7

答案 1 :(得分:0)

用Capital编写DataTable&#39; D&#39;而不是dataTable。 对于DataTable的布尔属性,使用前缀b,对于字符串属性,使用前缀s。所以用户代码会喜欢这个。

$('#clientTable').DataTable({  
    bServerSide: true,
    sAjaxSource: 'clientApiConstant',
    columns:  [
        { "data": "id",},
        { "data": "name" },
        { "data": "phone" },
        { "data": "mail" },
        { "data": "date" },
        { "data": "auto" }
    ]
}); 

小心上部下部字母套管。