返回false dos't停止ajax$.post中的代码

Return false doesn't stop the code in ajax $.post

本文关键字:ajax post 代码 停止 dos false 返回      更新时间:2023-09-26

我使用$.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之外的其他代码完成后很长一段时间。因此,在警报发生之前,该函数中的代码甚至不会执行。