繁体   English   中英

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

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

我使用$.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代码的执行。

您说的警报语句不应运行,因为完成后return false; 在函数中不返回false。 不会受到其他某些函数返回false的事实的影响。 它绝对应该运行。


最重要的是,您的帖子调用的成功功能是事件回调。 它是已创建的,但是直到文件的实际加载发生后才运行,这将在ajax之外的其他代码完成很长时间之后进行。 因此,在该警报发生之前,该函数中的代码甚至都不会执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM