Jquery DataTables无法显示Ajax数据
我试图使用以下HTML显示来自Ajax源代码的数据:Jquery DataTables无法显示Ajax数据,jquery,ajax,datatables,Jquery,Ajax,Datatables,我试图使用以下HTML显示来自Ajax源代码的数据: <table class="table-striped data-table" data-src="https://my.site/json-url" data-columns='["id","sku","name","base_stock","stock","sales"]'&
<table class="table-striped data-table" data-src="https://my.site/json-url" data-columns='["id","sku","name","base_stock","stock","sales"]'>
<thead>
<tr>
<th>ID</th>
<th>SKU</th>
<th>Name</th>
<th>Initial Stock</th>
<th>Current Stock</th>
<th>Sales</th>
</tr>
</thead>
</table>
其中,https://my.site/json-url
通常以以下方式响应:
{
"status": "success",
"data": [
{
"id": 1515,
"sku": "",
"name": "Test Simple",
"base_stock": 10,
"stock": 10,
"sales": 0
},
{
"id": 1512,
"sku": "BWTEST",
"name": "Test Variable - Black / White",
"base_stock": 9,
"stock": 9,
"sales": 0
},
{
"id": 1513,
"sku": "CLRTEST",
"name": "Test Variable - Multi-Color",
"base_stock": 4,
"stock": 4,
"sales": 0
}
]
}
但是,我得到了一个错误:uncaughttypeerror:无法使用'in'运算符在jquery.min.js:2:1065
中搜索“id”中的“length”。有人能帮忙吗
注意:我可以看到实际上没有对https://my.site/json-url
因此,即使在ajax调用之前,错误似乎也会发生。您的自定义数据-
标记与datatables数据-
标记冲突
DataTables还可以使用从HTML5数据-*属性读取的初始化选项。这提供了一种直接在HTML中设置选项的机制,而不是使用Javascript
重命名您的数据-
属性,您就可以了(只要您不选择另一个冲突的名称…)
为了确认,将所有内容删除到最低限度,以排除ajax和datatables选项也会出现错误:
$('.data table')。每个(函数(){
$(此).DataTable({
});
});代码>
如果您对结果结构感到好奇,这就是控制台中选项数组的外观:{“responsive”:true,“ajax”:https://my.site/json-url“,”列“:[“id”,“sku”,“名称”,“基本库存”,“库存”,“销售”],“src”:”https://my.site/json-url", “aoColumns”:[“id”、“sku”、“name”、“base_stock”、“stock”、“sales”]}
你真是个救世主!我已经看过了所有常用的解决方案,包括列结构、手动数据,甚至是单独的ajax调用。它从未点击过,问题可能是数据-*属性。
{
"status": "success",
"data": [
{
"id": 1515,
"sku": "",
"name": "Test Simple",
"base_stock": 10,
"stock": 10,
"sales": 0
},
{
"id": 1512,
"sku": "BWTEST",
"name": "Test Variable - Black / White",
"base_stock": 9,
"stock": 9,
"sales": 0
},
{
"id": 1513,
"sku": "CLRTEST",
"name": "Test Variable - Multi-Color",
"base_stock": 4,
"stock": 4,
"sales": 0
}
]
}