JSON格式的Ajax源数据-无法获取属性'长度'的未定义引用或null引用
Ajax sourced data in JSON format - Unable to get property 'length' of undefined or null reference
我试图将json数据(从Web API ajax调用检索)加载到jQuery DataTables,但我得到了以下错误:
中第38行第314列出现未处理的异常https://cdn.datatables.net/1.10.9/js/jquery.dataTables.min.js
0x800a138f-JavaScript运行时错误:无法获取属性"length"未定义或空引用
这是我的jQuery调用:
$(document).ready(function () {
$('#stat').DataTable({
"responsive": true,
"paging": false,
"ordering": false,
"info": false,
"bFilter": false,
"processing": true,
"serverSide": true,
"ajax": {
'url': 'http://localhost:61178/api/financeStats'
}
});
});
这是我从Web API调用检索到的JSON数据:
[
{
"Description": "Total Sas debt at yesterday",
"TotAgents": 788,
"TotAmount": 1767595.5854
},
{
"Description": "Total CL Sas with Rid worked yesterday",
"TotAgents": 413,
"TotAmount": 3026100
},
{
"Description": "Total CL Sas with No Rid worked yesterday",
"TotAgents": 164,
"TotAmount": 1252650
},
{
"Description": "Total Debt Sas with Rid to be cleared today",
"TotAgents": 35,
"TotAmount": 59448.7522
},
{
"Description": "Debt Sas with No Rid to be cleared today",
"TotAgents": 157,
"TotAmount": 478285.384
},
{
"Description": "Today Claim opened",
"TotAgents": 125,
"TotAmount": 146262.6726
},
{
"Description": "Today Claim still opened",
"TotAgents": 51,
"TotAmount": 113485.4991
},
{
"Description": "Today Claim opened & postponed",
"TotAgents": 18,
"TotAmount": 27726.748
},
{
"Description": "Today Claim closed by the operators",
"TotAgents": 8,
"TotAmount": 4540.1682
},
{
"Description": "Today Claim closed by the system",
"TotAgents": 47,
"TotAmount": -4699.3427
},
{
"Description": "Today Claim Locked Sdd",
"TotAgents": 1,
"TotAmount": 5209.6
},
{
"Description": "Today Claim Locked No Sdd",
"TotAgents": 0,
"TotAmount": 0
},
{
"Description": "Today Claim UnLocked proposal",
"TotAgents": 0,
"TotAmount": 0
},
{
"Description": "Overall Claim Locked Sdd",
"TotAgents": 3,
"TotAmount": 7196.54
},
{
"Description": "Overall Claim Locked No Sdd",
"TotAgents": 2,
"TotAmount": 1714.1
},
{
"Description": "Overall Claim Unlocked proposal",
"TotAgents": 3,
"TotAmount": -155.33
},
{
"Description": "Overall Workout",
"TotAgents": 541,
"TotAmount": 619838.3527
}
]
原因
jQuery DataTables的错误Unable to get property 'length' of undefined or null reference
(IE)或Cannot read property 'length' of undefined
(其他浏览器)通常意味着插件无法访问响应Ajax请求的数据。
你的代码有几个问题
- 您已经使用
serverSide: true
启用了服务器端处理模式,但您的数据是为客户端处理模式格式化的。删除serverSide: true
以使用客户端处理模式 - 您的数据是对象数组。在这种情况下,您需要使用
columns
选项来使用data
选项在数据集中为每列定义特性名称 - 您需要使用
dataSrc: ""
来匹配JSON数据格式,有关更多信息,请参阅dataSrc
解决方案
使用以下代码:
$('#stat').DataTable({
"responsive": true,
"paging": false,
"ordering": false,
"info": false,
"searching": false,
"ajax": {
"url": "http://localhost:61178/api/financeStats",
"dataSrc": ""
},
"columns": [
{ "data": "Description" },
{ "data": "TotAgents" },
{ "data": "TotAmount" }
]
});
演示
有关代码和演示,请参阅此jsFiddle。
相关文章:
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 无法获取属性'字符串'的未定义或null引用IE 11 ASP.NET
- SCRIPT5007:无法获取属性'长度'的未定义引用或null引用
- 无法获取属性'setActionableButtonState'的未定义引用或null引用
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- 为什么引用 = null 不会影响引用的对象
- 使用clearInterval方法实现的是将区间变量引用设置为null,而不是
- 无法获取属性'偏移'的未定义引用或null引用
- 0x800a138f-JavaScript运行时错误:无法获取属性'fn'的未定义引用或null引用
- 尝试使用会话存储;无法设置属性'登录'的未定义引用或null引用
- 我一直收到未捕获的引用错误:未定义下拉菜单和未捕获的类型错误:无法读取 null 的属性“样式”
- 哪种方法代表了 JavaScript 中空对象引用的最佳实践,null 或未定义
- JavaScript运行时错误无法获取属性'值'的未定义引用或null引用
- 无法获取属性'1'的未定义引用或null引用
- IE9无法获取属性'删除'的未定义引用或null引用
- IE11无法获取属性'值'的未定义引用或null引用
- 如何在没有null引用异常的情况下轻松获得Javascript中嵌套字段的值
- SignalR-无法获取属性'客户端'的未定义引用或null引用
- JavaScript null引用错误
- 无法获取属性'可见性'的未定义引用或null引用