返回false不会停止ajax $ .post中的代码

时间:2016-01-02 19:29:04

标签: javascript jquery ajax

我使用$.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")

2 个答案:

答案 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之外的其他代码完成后很长时间。因此,该功能中的代码甚至不会在发出警报之前执行。