前端小白,第一次接触Datatables表格插件,经常会遇到Uncaught TypeError: Cannot read property ‘length’ of undefined这么个报错
我也遇到了好几次,每次都没记住,几天狠下心来写一篇推文,分享给大家,也顺便当记笔记了。从字面上翻译是length未定义,但是这么理解你怎么也不会解决错误,因为这是人家js里定义的。
错误1:ajax请求出错
"ajax": {
"url": "url",
"dataType": "json",
"type": "POST",
"data":{
token: hex_md5(timeStamp + key),
timeStramp: timeStamp,
flag: 1
}
},
"columns" : [
{ "data": "id" },
{ "data": "city" },
{ "data": "country" },
{ "data": "admin_name" },
{ "data": "telphone" },
{ "data": "create_time" }
],
我之前这个flag输入的参数不是后台需要的参数,所以ajax无法正常获取正确数据,就会报这个错。
如何知道ajax有没有获取到数据,可以打开浏览器的控制台,查看network
从获取到的数据可以看到数据在adminInfo中,但是插件需要的是data参数,所以就是报这个错。
但是如果我获取到的数据为空是不会报着个错误的他只会跳出一个提示,并说数据为空。
错误2:请求方式错误。
把请求方式写反了也会报这个错
"ajax": {
"url": url,
"dataType": "json",
"type": "post",
"data":{
token: hex_md5(timeStamp + key),
timeStramp: timeStamp
}
},
错误3:数据使用错误
返回数据明显是有的,就像错误1里的network显示的一样,但是你直接把一整个返回数据全塞过去,很明显你要显示的应该是admininfo这个json数据,只需要对应修改为res.adminInfo传给datatable就行了。
也可以加入DataTables中文网交流群3:20779435来提问
第一次发文章,有不足或者错误的可以指出来,我一定虚心改正,谢谢大家!