我使用$.post
执行ajax请求,这是我的代码:
$.post(postUrl, postData, function(response)
{
if(response.status == "SUCCESS")
{
updateConfirmFrame();
}
else
{
return false;
}
}, 'json');
现在,如果响应返回SUCCESS
,代码将继续调用解锁某些控制的函数,但如果处理了异常,则代码应被阻止。现在我已经将一个警报置于return false;
条件下,并且该警报被正确打印,但是返回false并不能停止代码。我不希望代码继续执行。我也试过使用throw Exception
,但不起作用。我做错了什么?
更新
$.post(postUrl, postData)
.done(function(response)
{
if(response.status == "SUCCESS")
{
updateConfirmFrame();
}
else
{
alert("error"); //The problem is here
return false;
}
})
.fail(function(err)
{
return false;
});
alert("hi wor")
使用:
$.post(url, postdata)
.done(function(response) {
})
.fail(function(err) {
// error
});
您使用的语法是$.post(postUrl, postData, success_callback, fail_callback);
return
语句只返回它们所在的函数,从而停止该函数中的进一步代码执行。它们通常不会停止JS代码的执行。
您所说的不应该运行的alert语句,因为您已经执行了return false;
,不在返回false的函数中。它不会受到其他函数返回false的事实的影响。它绝对应该运行。
除此之外,post调用的成功函数是一个事件回调。它是创建的,但直到实际加载文件时才运行,这将在ajax之外的其他代码完成后很长一段时间。因此,在警报发生之前,该函数中的代码甚至不会执行。