DataTables:.ajax 没有定义?

Posted

技术标签:

【中文标题】DataTables:.ajax 没有定义?【英文标题】:DataTables: .ajax is not defined? 【发布时间】:2019-09-13 13:07:48 【问题描述】:

我正在使用 DataTables 成功显示一些 JSON 数据。我想用一些稍微不同的 JSON 重新加载数据源,但我遇到了错误。

我用这一行调用 DataTables:

<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/jqc-1.12.4/dt-1.10.18/datatables.min.js"></script>

我正在用这个 JS 代码初始化 DataTables:

$(function()
    var apiUrl = '/api/people.php';
    var table = dt('#peopleTable').dataTable(
        ajax: 
            dataType: 'text',
            type: 'POST',
            url: apiUrl,
            dataSrc: function (json) 
                return $.parseJSON(json);
            
        ,
        columns: [...] // column definitions here
    );

到目前为止,所有这些都运行良好,没有问题。问题接踵而至……

所以我有这个点击处理程序:

    $('.people-type').on('click', function()
        var id = $(this).data('id');
        table.ajax.url(apiUrl + '?type=' + id).load();
        table.draw();
    );

当这个点击处理程序运行时,我被告知table.ajax is not defined。确实console.log(table); 揭示了同样的事情,尽管table 似乎确实绑定到一个看起来像DataTables 对象的东西:

文档告诉我我的代码是正确的:https://datatables.net/reference/api/ajax.url().load()#Example

但显然我的 DataTables 没有 ajax 方法。谁能解释这里发生了什么?

【问题讨论】:

【参考方案1】:

我认为您的问题是 dataTable() 与 DataTable()。检查this。在您的 javascript 中,将 var table = dt('#peopleTable').dataTable 行替换为 var table = dt('#peopleTable').DataTable 并检查 ajax 是否正常工作

【讨论】:

哦,我不敢相信这是问题所在!现在踢自己 - 非常感谢

以上是关于DataTables:.ajax 没有定义?的主要内容,如果未能解决你的问题,请参考以下文章

为 ajax 响应自定义 DataTables 分页

数据表:未捕获的类型错误:无法读取未定义的属性“长度”

如何使用 ajax-datatables-rails 理解 Rails 中的包含

为 jquery datatables ajax 调用设置错误处理程序

带有 ajax 的 DataTables 1.10.6,为第 0 行请求未知参数 0

DataTables的ajax和fnDraw()的使用问题