我正在使用带有来自表单的信息的服务器端处理的 DataTables。在表单提交数据表时发送一个 Ajax 请求,该请求由 Java Servlet 处理。
在遇到一些问题后,我决定开始使用 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}
);
}
});
});
});