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 数据表 |获取数据时出现未知警告的主要内容,如果未能解决你的问题,请参考以下文章