数据表未呈现ajax源json数据

时间:2017-03-12 10:55:24

标签: javascript ajax datatables http-status-code-400

在尝试使用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);

怎么了?

1 个答案:

答案 0 :(得分:1)

data必须是"行"

的数组

来自documentation

  

用于DataTable 主数据源必须始终为数组(它   在使用DOM源数据时自动创建)。每个项目   该数组将定义要显示的行,DataTables可以使用   三种基本的Javascript数据类型作为行的数据源

     
      
  • 阵列 - []
  •   
  • 对象 - {}
  •   
  • 实例 - new MyClass()
  •   

因此,来自?r=site/test的返回数据必须是

{
    "data": [{
        "title": "Seminar",
        "pdate": "2016-02-05",
        "duedate": "2016-03-04"
    }]
}

fiddle