尝试使用Ajax源数据呈现数据表时,出现
400错误的要求
作为ajax响应。
我从ajax调用中获得的Json如下所示,它很高兴地由Jsonlint验证
{
"data": {
"title": "Seminar",
"pdate": "2016-02-05",
"duedate": "2016-03-04"
}
}
我正在使用datatables建议的以下javascript呈现ajax源数据;
$('#table1').DataTable({
ajax: {
url: '?r=site/test',
type: 'POST',
dataSrc: 'data'
},
columns: [
{ data: 'title' },
{ data: 'pdate' },
{ data: 'duedate' }
]
});
这是fiddle。
$b = [
'title'=> "Seminar",
'pdate'=> "2016-02-05",
'duedate' => "2016-03-04"
];
$a['data'][] = $b;
echo json_encode($a);
怎么了 ?
最佳答案
data
必须是“行”的数组
从documentation:
用于DataTable的主要数据源必须始终是一个数组(它
是在使用DOM来源数据时自动创建的)。中的每个项目
该数组将定义要显示的行,并且DataTables可以使用
三种基本的Javascript数据类型作为行的数据源
数组-[]
对象-{}
实例-new MyClass()
因此,从?r=site/test
返回的数据必须是
{
"data": [{
"title": "Seminar",
"pdate": "2016-02-05",
"duedate": "2016-03-04"
}]
}
fiddle