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