![](/img/trans.png)
[英]Javascript function, calls another function, but return false doesn't stop
[英]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.