我在Portlet中使用Kendo UI DatePicker。這是我的jQuery Ajax代碼:jQuery Ajax不發佈任何數據
kendoWindow.find(".btnConfirm,.btnCancel").click(function(e)
{
if (jQuery(this).hasClass("btnConfirm"))
{
var strStartDate;
var strEndDate;
jQuery.ajax(
{
url : window.urlGenerateWorkbook,
data :
{
strStartDate : jQuery("#startDate").data("kendoDatePicker").value(),
strEndDate : jQuery("#endDate").data("kendoDatePicker").value()
},
dataType : "json",
cache : false,
async : true,
type : "POST",
timeout : 0,
success : function(jsonResponse)
{
if (jsonResponse.hasOwnProperty('ERROR'))
{
alertError(jsonResponse['ERROR']);
}
else
{
jQuery('.pnlJournalEntry #tdEntries > div').empty();
setJournalEntries(strPortletID);
}
},
error : function(jsonResponse)
{
alertError("There was no response from the server.");
}
});
}
kendoWindow.data("kendoWindow").close();
}).end();
我使用的是劍道的窗口中打開portlet,它會要求一個日期範圍內的另一個窗口。然後它將這些日期通過ajax發送出去。當我警告strStartDate和strEndDate時,我會得到值。但在Java方面,我得到了NullPointerException。當我在Firebug中檢查POST方法時,我沒有發佈任何內容。
有人能幫我解決這個問題嗎?謝謝。
編輯:我想我找到了問題。 Ajax中的所有內容都需要以字符串形式發送。 Kendo UI DatePicker,當我將strStartDate和strEndDate設置爲value()時,它返回一個Date。因爲Ajax不能發送日期,我不得不這樣做:
data :
{
strStartDate : jQuery('#startDate').data("kendoDatePicker").value().toString(),
strEndDate : jQuery('#endDate').data("kendoDatePicker").value().toString()
},
這是現在就派下面的Java視圖控制器:
週五2013年3月1日00:00:00 GMT-0500(東標準時間) 2013年3月12日00:00:00 GMT-0400(東部夏令時間)
我仍然收到NullPointerException,但我認爲它現在在Java端,所以我至少獲取一些數據現在。感謝您的建議傢伙。
這當我在Firebug中查看它時,實際上是張貼了一些內容,但我仍然得到一個空指針異常。 – snowfi6916 2013-03-14 18:00:42