DataTables 警告:无法解析来自服务器的 JSON 数据。这是由 JSON 格式错误引起的
Posted
技术标签:
【中文标题】DataTables 警告:无法解析来自服务器的 JSON 数据。这是由 JSON 格式错误引起的【英文标题】:DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error 【发布时间】:2012-01-09 23:20:12 【问题描述】:我在一个项目中使用服务器端数据表
然后进行搜索,显示以下错误消息:
DataTables warning: JSON data from server not could be parsed. This is Caused by a JSON formatting error.
我在论坛中找到了一些建议,但对我没有任何帮助
有人有什么建议吗?
【问题讨论】:
【参考方案1】:您的 json 不是数据表所期望的有效格式,即行/列二维数组。
[["row1col1","row1col2"],["row2col1"],.....]
【讨论】:
在示例中也包含在大括号中:datatables.net/release-datatables/examples/data_sources/… 我不明白问题可能出在哪里,我用来测试的例子如下:datatables.net/development/server-side/php_postgres【参考方案2】:如果您正在使用:
"sAjaxSource": "myHandler.php"
然后你必须从你的处理程序返回:
"\"aaData\": [\"propOne\": \"valueOne\",\"propTwo\": \"valueTwo\"], [...],... "
注意
\"aaData\":
在 json 收集和注意刹车之前:
\"aaData\"....
我在 asp.net 中的示例(这是有效的):
Response.Write("\"aaData\": [\"propOne\": \"valueOne\",\"propTwo\": \"valueTwo\"]");
客户页面:
oTable = $('#myTable').dataTable(
"bProcessing": true,
"sPaginationType": "full_numbers",
"aLengthMenu": [[5,10,20,50,100], [5,10,20,50,100]],
"aaSorting": [[ 1, "desc" ]],
"sAjaxSource": "MyHandler.ashx",
"aoColumns": [
"mDataProp": "propOne" ,
"mDataProp": "propTwo"
]
);
【讨论】:
我的处理程序返回:""aaData": ["propOne": "valueOne","propTwo": "valueTwo"], [...],... ",没有 \ 那是问题吗?或者我可以把 \ ? 是的,datatable 只接受双逗号,这个:'propOne': 'valueOne' 会报错。 DataTable 需要 "(double) 所以你需要用 \.【参考方案3】:我遇到了这个问题,就像更新以下文件中的信息一样简单:
"sAjaxSource": "DataTables/examples/server_side/scripts/server_processing.php"
不知道你要找的答案是不是那个行人,但我想我会投入 2 美分!!
【讨论】:
【参考方案4】:检查 firebug 中的网络选项卡,您可能会看到底层服务器错误
【讨论】:
【参考方案5】:对于较新版本的数据表,不要忘记从 server_processing.php 文件中删除这一行
/* REMOVE THIS LINE (it just includes my SQL connection user/pass) */
include( $_SERVER['DOCUMENT_ROOT']."/datatables/mysql.php" );
【讨论】:
以上是关于DataTables 警告:无法解析来自服务器的 JSON 数据。这是由 JSON 格式错误引起的的主要内容,如果未能解决你的问题,请参考以下文章
DataTables 警告:table id=example - 无法重新初始化 DataTable - jQuery
DataTables 警告:table id=DataTables_Table_1 - 无法重新初始化 DataTable。不工作
ajax datatable - DataTables警告:table id = example - 无法重新初始化DataTable