jQuery DataTables:未捕获的TypeError:无法读取未定义的属性“长度”

时间:2017-07-24 19:50:15

标签: javascript jquery jquery-plugins datatables

代码:单击提交按钮,一旦用户输入文本,应用程序将访问具有JSON格式数据的其余API。代码应处理JSON数据和jquery数据表。

Uncaught TypeError: Cannot read property 'length' of undefined
            at jquery.dataTables.min.js:48
            at i (jquery.dataTables.min.js:35)
            at Object.success (jquery.dataTables.min.js:35)
            at fire (jquery-1.12.4.js:3232)
            at Object.fireWith [as resolveWith] (jquery-1.12.4.js:3362)
            at done (jquery-1.12.4.js:9840)
            at XMLHttpRequest.callback (jquery-1.12.4.js:10311)

我正在尝试从一个非常好的API形成一个Jquery数据表,但得到以下错误:

  {
      "account": [
        {
          "id": "1", 
          "rel": "P", 
          "fin": "abc", 
          "date": "2001-01-05"
        }, 
        {
           "id": "2", 
          "rel": "P", 
          "fin": "def", 
          "date": "2001-02-05"
        }, 
        {
          "id": "3", 
          "rel": "R", 
          "fin": "ghi", 
          "date": "2019-01-05"
        }
      ]
    }

Ajax响应:以下是来自RestAPI的Ajax格式:

copy

有人可以说明为什么会这样,我需要做出哪些改变?

1 个答案:

答案 0 :(得分:2)

使用jQuery DataTables的错误=IF(ISERR(SEARCH($B2,$A2)),"N/A",$B2) (IE)或Unable to get property 'length' of undefined or null reference(其他浏览器)通常意味着插件无法访问来自Ajax请求的数据。

使用sequence of UInt8 initialiser选项在包含数据的Ajax响应中指定数据属性(Cannot read property 'length' of undefined)。

您的代码也缺少正确的ajax.dataSrc选项。

更改初始化选项,如下所示:

account

有关此错误和其他常见控制台错误的详细信息,请参阅columns.data