2012-06-11 111 views
0

我正在使用DataTables与服务器端处理来自表单的信息。 表单提交datatables发送一个Ajax请求,这个请求由Java Servlet处理。Datatables AJAX请求错误

经过一些问题我决定开始使用Firebug。当我点击提交按钮 萤火返回以下jquery相关错误:

// Do send the request 
// This may raise an exception which is actually 
// handled in jQuery.ajax (so no try/catch here) 
xhr.send((s.hasContent && s.data) || null); 

当我使用Firebug重新发送请求,该请求被正确处理,这意味着 一个JSON响应发送到浏览器。

我觉得调用顺序有问题,就像servlet没有准备好或类似的东西,这可以解释为什么重新发送请求成功。尽管我不确定。

数据表jQuery代码:

$(document).ready(function() { 
    $("#searchResults").dataTable({ 
     "bJQueryUI": true 
     }); 
    $('.searchsubmit').click(function() { 
     var formData = $('form').serialize(); 
     $("#searchResults").dataTable({ 
      "bDestroy": true, 
      "bProcessing": true, 
      "bServerSide": true, 
      "sAjaxSource": 'Search', 
      "sServerMethod": "POST", 
      "aoColumns": [ 
          { "mDataProp": "messagecaseid" }, 
          { "mDataProp": "messagesubject" }, 
          { "mDataProp": "messagesender" }, 
          { "mDataProp": "messagereceiver" } 
         ], 
      "fnServerParams": function (aoData) { 
       aoData.push({"name": "formData", "value": formData} 
         ); 
      } 
     }); 
    }); 
}); 
+0

是'搜索'一个有效的URL?另外,servlet可能会发送仍然无法由DT处理的“有效JSON”。你可以发布一个JSON被返回的例子吗? –

回答

0

在onclick方法的返回值设置为false,使网页不刷新,数据表得到一个机会来填充表。