如何中斷ajax請求【學習筆記】


停止javascript的ajax請求有兩種方式

      1.  設置超時時間讓ajax自動斷開

      2.  手動去停止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

  原生js:

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();
 }
 }
//根據響應狀態的改變關閉

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

原文:你的名字~


免責聲明!

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



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