我正在嘗試處理來自jQuery的ajax調用的響應正文,但迄今爲止沒有成功。jQuery ajax():無法處理響應
這裏是我的jQuery代碼:
function doAjaxClosedStatus(url, requestId, closedStatusId) {
$.ajax({
type: "POST",
url : url+requestId,
data : ({
'closedStatusId' : closedStatusId
})
}).success(function(msg) {
alert(msg);
if (msg == "fail") {
alert("test");
$(document).append($('<div class="alert alert-error affix" data-offset-top="200">You can\'t specify a closed status if status is not set as "closed"</div>'));
$('option:selected', '.closedStatus ').removeAttr('selected');
$('.closedStatus option:first-child').prop('selected', 'selected');
}
});
}
所以整個呼叫和服務器端的處理工作就像一個魅力,並用「完成」或「失敗」,分別時,一切響應是對還是錯(我知道你猜對了)。現在我想做一些客戶端處理,當迴應是失敗,但alert(msg)
從未觸發... 我在做什麼錯了?
編輯:我忘記說了,我在使用Spring MVC作爲後端和我只是在「失敗」爲@ResponseBody
。當我檢查網絡流時,響應主體是「失敗」或「完成」。
EDIT2:我試着用:
$.ajax({
type: "POST",
url : url+requestId,
data : ({
'closedStatusId' : closedStatusId
}),
success:function(msg) {
alert(msg);
if (msg == "fail") {
alert("test");
$(document).append($('<div class="alert alert-error affix" data-offset-top="200">You can\'t specify a closed status if status is not set as "closed"</div>'));
$('option:selected', '.closedStatus ').removeAttr('selected');
$('.closedStatus option:first-child').prop('selected', 'selected');
}
}
});
仍然沒有成功...
EDIT3: 所以我一直試圖再次這樣:
function doAjaxClosedStatus(url, requestId, closedStatusId) {
$.ajax({
type: "POST",
url : url+requestId,
data : ({
'closedStatusId' : closedStatusId
}),
success:function(msg) {
alert(msg);
if (msg == "fail") {
alert("test");
$(document).append($('<div class="alert alert-error affix" data-offset-top="200">You can\'t specify a closed status if status is not set as "closed"</div>'));
$('option:selected', '.closedStatus ').removeAttr('selected');
$('.closedStatus option:first-child').prop('selected', 'selected');
}
}
});
}
由於某種原因,它現在可以工作。也許這是因爲我的瀏覽器的緩存沒有被清空,因此與我的腳本的舊版本工作。無論如何,現在這是正常工作。除了我的DOM操作,但這不屬於問題本身,所以主題關閉!感謝大家!
<<也許這是因爲我的瀏覽器的緩存不被清空>>這可以解釋一切;) –
^^^^^發生在我們身上的所有,發佈它作爲自己的回答 - >「愚蠢我沒有擊中CTRL-F5「,並接受它,你會得到更多的代表。 – adeneo