jQuery DataTable无法通过返回响应数据初始化,请求排查问题
DataTable 数据加载失败问题排查与修复
你遇到的问题是DataTable已经初始化成功,但数据没显示出来,只提示“No data available in table”,我帮你排查了下代码,问题出在配置参数的名称错误上,具体有两处核心问题:
错误点分析
- DataTable中指定数据源的配置参数是
data,但你写成了mydata,插件根本找不到你传入的数据源 - 列配置里指定对应字段的参数同样是
data,你也写成了mydata,导致列无法匹配数据字段
另外提一句,async: false这种同步AJAX的写法现在已经不推荐了,可能会导致页面卡顿,建议去掉这个参数(默认就是异步模式)。
修正后的代码
把你的DataTable初始化代码改成下面这样即可:
$.ajax({ url: url, type: "get", contentType: 'application/json; charset=utf-8', dataType: 'json', success: function(response) { $('#countryTable').DataTable({ fnRowCallback: function(nRow, aData, iDisplayIndex) { $("td:first", nRow).html(iDisplayIndex + 1); return nRow; }, destroy: true, // 修正数据源参数名 data: response.data, columns: [ // 修正列字段参数名 { data: 'countryId' }, { data: 'countryName' }, { data: 'countryShortCode' } ] }); console.log(response); } });
额外说明
你的HTML表格结构是没问题的,thead列数和配置的columns数量完全匹配,修正参数名后,DataTable就能正确读取response.data里的数组,把数据渲染到表格中了。
内容的提问来源于stack exchange,提问作者bharath
相关产品推荐
相关产品推荐

