我正在尝试处理来自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