DataTable未加载 - 未捕获TypeError:无法读取未定义的属性“长度”

时间:2016-08-29 07:55:29

标签: jquery ajax datatables

尝试从ajax请求加载DataTable,

var url = '/my/url';
var table = $('#m_datatable').DataTable( {

            'ajax': {
              type: 'GET',
              'url': url,
              'data': function (d) {                
                return JSON.stringify( d );
              }
            }

        } );

HTML:

<table id="m_datatable" class="display" width="100%">
    <thead>
            <tr>
                <th>Id</th>
                <th>Value1</th>
                <th>Value2</th>
            </tr>
        </thead>
    </table>

Ajax请求返回json:

[
{
id: 1801,
value1: 1224589451,
value2: 1665229451
},
{
id: 1802,
value1: 1224589451,
value2: 1665229451
},
{
.
.
.
}
]

DataTable在控制台中显示为空并抛出以下错误:

Uncaught TypeError: Cannot read property 'length' of undefined http://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js

1 个答案:

答案 0 :(得分:2)

您需要告诉表格如何处理数据,添加:

,
'columns': [{
  'data': 'id'
}, {
  'data': 'value1'
}, {
  'data': 'value2'
}]

......应该这样做,希望有所帮助。 (工作示例:https://jsfiddle.net/annoyingmouse/vvmcyacv/