我的應用程序中有一個非常簡單的任務,它在選擇事件後從組合框中檢索數據。如何響應正確的服務器執行Ajax Post方法?
當選擇事件引發時,數據被傳遞給一個jQuery函數,它從服務器端請求操作。
所有這些東西都沒問題,但在處理服務器的響應時,Ajax接收到請求失敗的條件。由於我是jQuery和Ajax的新手,我不知道我應該錯過什麼或者做錯了什麼。
jsp的片:
<input id="updStatus"
class="easyui-combobox"
name="updStatus"
data-options="
valueField:'id',
textField:'Name',
url:'StatusListCombo',
onSelect:function updStatusTask(row) {
$.fn.updStatusTask(row.id, ${task.id});
}">
jQuery函數:
$.fn.updStatusTask = function (idStatus, idTask) {
var result = $.post("TaskUpdateStatus", {
idTask : idTask,
idStatus : idStatus
});
result.done(function(data) {
alert("data: " + data); //<--NOT REACHED!!
});
result.fail(function(jqXHR, textStatus) {
alert("fail data: " + textStatus); //FIRED
});
result.always(alert("always"));//FIRED
};
了Serverside方法:
@RequestMapping(value = "/TaskUpdateStatus")
public String TaskUpdateStatus(Long idTask, Long idStatus, HttpSession httpSession, HttpServletResponse resp) throws IOException {
String result = new String();
try {
//... do DAO opperations to persist, everything Ok...
resp.setStatus(200);
result = "Task successfully updated.";
}
catch(Exception e) {
result = "Error: " + e.getMessage();
}
return result;
}
什麼是失敗請求? – enginefree
@enginefree,好問題。 [數據]參數只顯示「錯誤」。我能獲得關於這個錯誤的更多信息嗎? – Alex
而不是'e.getMessage()',只需嘗試'e.toString()'。 – enginefree