PHP生成JSON填充DataTable报错,已用JSON.parse解决,求问题原因
解决DataTables无法通过AJAX响应数据填充的问题
问题核心原因
你遇到的错误是因为XMLHttpRequest返回的responseText是字符串格式的JSON,而DataTables的data配置项需要的是JavaScript对象/数组类型的数据。直接把字符串传给data时,DataTables无法识别字符串内部的FName、SName属性,因此抛出「Requested unknown parameter」错误。
你手动赋值的jsdata是原生JS数组,符合DataTables的数据格式要求,所以能正常运行。
解决步骤
只需要将AJAX返回的JSON字符串通过JSON.parse()方法解析为JavaScript对象数组即可:
修正后的JavaScript代码
const xhttp = new XMLHttpRequest() xhttp.open("GET", "datatabletest.php") xhttp.send() xhttp.onload = function() { var response = JSON.parse(xhttp.responseText); // 关键步骤:解析JSON字符串为JS对象 console.log(response); $('#example').DataTable({ "data": response, "columns": [ { "data": "FName" }, { "data": "SName" } ] }); }
更简洁的替代方案
可以直接使用DataTables内置的ajax配置项,它会自动处理JSON请求和解析,无需手动编写XMLHttpRequest逻辑:
$('#example').DataTable({ "ajax": "datatabletest.php", "columns": [ { "data": "FName" }, { "data": "SName" } ] });
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

