停止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很可能已經對服務端發送了請求,只是還未返回回饋信息而已。
原文:你的名字~