Jquery DataTables—fnServerData中的自定义AJAX请求是';行不通

Jquery DataTables—fnServerData中的自定义AJAX请求是';行不通,jquery,ajax,datatables,Jquery,Ajax,Datatables,我正在初始化一个dataTable并使用ajax函数加载数据。 服务器端是SpringMVC+hibernate 以下是初始化数据表的代码 $('.hist_data').on('click', function(){ $('.myTable').dataTable( { "bProcessing": true, "bServerSide": true, "bJQueryUI": true, "sAjaxSource": "

我正在初始化一个dataTable并使用ajax函数加载数据。 服务器端是SpringMVC+hibernate

以下是初始化数据表的代码

$('.hist_data').on('click', function(){
    $('.myTable').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "bJQueryUI": true,
        "sAjaxSource": "/application-monitor/getTableData",
        "fnServerData" : function(sSource, aoData, fnCallback) {
            request = $.ajax({
                "dataType" : "json",
                "type" : "POST",
                "url" : sSource,
                "data" : aoData,
                "success" : fnCallback
            });
        },
        "aoColumns": [
            { "mData": "id" },
            { "mData": "name" },]
    } );

});
/application monitor/getTableData返回一个对象列表(一个具有id和名称的java bean,它们是我的列)

当我运行这个程序时,我在页面中看不到任何数据,我也使用firebug对其进行调试,但在初始化时没有看到任何问题


非常感谢您的帮助。

我不确定,但首先您需要检查firebug或devtools是否正确获取了数据。如果是,那么您的代码可能是错误的。我从文件中复制了以下内容:

"fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
    oSettings.jqXHR = $.ajax( {
        "dataType": 'json', 
        "type": "POST", 
        "url": sSource, 
        "data": aoData, 
        "success": fnCallback
   });
},//....

我不知道您的代码中有什么
请求
,但请尝试上面的代码以确保。

您的代码对我来说可以正常工作

我创建了一些基本标记,如下所示:

<div class="hist_data">Click here</div>
<table class="myTable"></table>
{"aaData": [
  {"id":"1","name":"One"},
  {"id":"2","name":"Two"}
]}
结合您提供的javascript,以及jquery和dataTables脚本的一些链接,这就是我所要做的一切


我怀疑问题出在您的后端代码中。特别要注意的是,您应该返回一个包含项目数组的aaData字段的对象。你不能只返回数组本身。

看看实际的网络流量-返回的是什么?我只是用firebug对它进行了调试,它没有进入这个函数本身..函数(sSource,aoData,fnCallback,oSettings)…不确定问题出在哪里你确定吗?即使在点击之后它也不会开火?在ajax调用之前放置
console.log
,并告诉我它是否显示在控制台中。谢谢,问题在于我的json,json响应中没有aaData。。。。