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

Posted

技术标签:

【中文标题】JS 数据表 |获取数据时出现未知警告【英文标题】:JS Datatables | Unknown warning while fetching data 【发布时间】:2017-09-20 06:20:57 【问题描述】:

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

DataTables warning: table id=clientTable -

如您所见;没有对警告的解释。我也没有任何控制台警告。这是我的代码:

表格 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 "function" == typeof b && b(a, d, c) 行;第 1763 行 @ 版本 1.10.15

【问题讨论】:

【参考方案1】:

这是对您问题的解释

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

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

$.fn.dataTable.ext.errMode = 'throw';

有关更多详细信息,请查看: https://datatables.net/manual/tech-notes/7

【讨论】:

不.. 我的 API 返回 200。它在我的检查清单中。 Symfony 分析器和 Postman 证实了这一点。但是由于这个错误似乎没有任何影响,也许我可以使用它。但我担心它会影响 当我添加该代码时;我有控制台错误,我的数据没有显示。 jquery.dataTables.js:74:282 我正在编辑我的问题以显示哪一行失败。【参考方案2】:

使用大写“D”而不是 dataTable 写入 DataTable。 对于 DataTable 的布尔属性使用前缀 b,对于字符串属性使用前缀 s。所以用户代码会这样。

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

注意大小写字母大小写。

【讨论】:

我不能在 1.10.15 版本中使用 sAjaxSource;它不工作。加;其他诸如上部 D 更改或 bServerSide 更改之类的东西什么都不做。一切都还是一样。 请看这篇文章如何使用dataTable代替DataTable ***.com/questions/25207147/… 好的,改变这些也会改变 ajax 请求。所以我更正了我的 API,但仍然遇到同样的问题。警告没有任何解释。

以上是关于JS 数据表 |获取数据时出现未知警告的主要内容,如果未能解决你的问题,请参考以下文章

MongoDb 获取数据时出现聚合错误

尝试获取数据库信息时出现问题(mysql)

连接天气 api 时出现数据错误

调用 MySQL 存储过程时出现数据包乱序错误

安装 BlueJeans 会议 API 客户端时出现“pipenv 需要 #egg 片段以获取版本控制的依赖项”警告

从 api 获取数据时出现空白屏幕