關於js中斷ajax請求


 

停止javascript的ajax請求有兩種方式,一種是設置超時時間讓ajax自動斷開,另一種為手動去停止ajax請求,其核心是調用XMLHttpRequest對象上的abort方法,這里,我們以jquery舉例說明:


jquery的ajax對象的abort方法

 

調用abort后jquery會執行error的方法,拋出abort的異常信息,這個時候就可以執行我們中斷ajax后的操作了

var ajax = $.ajax({
'error':function(jqXHR, textStatus, errorThrown){
if(errorThrown != 'abort'){
//ajax被調用abort后執行的方法
alert('您的ajax方法被停止了');
        }
    }
})

ajax.abort();//停止ajax

 

原生方式

xmlHttp.open("POST","Url",true);
 xmlHttp.onreadystatechange=function(){
 ...//得到響應之后的操作
 }
 xmlHttp.send();
 //設置3秒鍾后檢查xmlHttp對象所發送的數據是否得到響應.
 setTimeout("CheckRequest()","3000");
 function CheckRequest(){
 //為4時代表請求完成了
 if(xmlHttp.readyState!=4){
 alert('數據響應超時');
 //關閉請求
 xmlHttp.close();
 }
 }

 

原生JavaScript;根據響應狀態改變關閉 

 

注意:不要用abort方法來作為終止對服務器的請求操作,只能當做在前端頁面立刻停止執行ajax成功后的方法,因為你執行abort方法后,ajax很可能已經對服務端發送了請求,只是還未返回回饋信息而已。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM