【发布时间】:2013-08-22 14:13:44
【问题描述】:
我的应用程序中有一个非常简单的任务,它在选择事件之后从组合框中检索数据。
当 select 事件被引发时,数据被传递给一个请求服务器端操作的 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
};
服务器端方法:
@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,好问题。 [data] 参数仅显示“错误”。我可以获得有关此错误的更多信息吗?
-
不用
e.getMessage(),试试e.toString()。 -
@enginefree,没有错误被抛出。问题出在 ajax 处理响应期间。请看我的cmets下面的答案。
-
如果您想提供反馈。只需解析
javascript端的响应即可。
标签: java javascript ajax jquery spring-mvc