私のアプリケーションには、選択イベントの後にコンボボックスからデータを取得する非常に単純なタスクがあります。
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;
}