フォームからの情報を使用してサーバー側で処理する DataTables を使用しています。フォーム送信時にデータテーブルが Ajax リクエストを送信すると、このリクエストは Java サーブレットによって処理されます。
いくつかの問題の後、Firebug を使い始めることにしました。送信ボタンをクリックすると、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 レスポンスがブラウザに送信されます。
サーブレットの準備ができていないなど、呼び出しの順序に問題があるように感じます。これにより、再送信要求が成功する理由が説明されます。確かではありませんが。
DataTables 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}
);
}
});
});
});