簡體   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