我使用$.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")
答案 0 :(得分:1)
使用:
$.post(url, postdata)
.done(function(response) {
})
.fail(function(err) {
// error
});
您使用的语法是$.post(postUrl, postData, success_callback, fail_callback);
答案 1 :(得分:1)
return
语句只返回它们所在的函数,停止在该函数中进一步执行代码 。它们通常不会停止JS代码执行。
您说的警告声明不应该运行,因为您已完成return false;
不在函数中返回false。它不会受到其他一些函数返回false的事实的影响。它绝对应该运行。
最重要的是,你的帖子调用的成功函数是一个事件回调。它已创建,但在文件的实际加载发生之前不会运行,这将在ajax之外的其他代码完成后很长时间。因此,该功能中的代码甚至不会在发出警报之前执行。