<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>取消请求</title>
</head>
<body>
<button>点击发送</button>
<button>点击取消</button>
<script>
//获取元素
const btns = document.querySelectorAll('button');
let x = null;
//标识变量
let sending = false; //是否正在发送AJAX请求
btns[0].onclick = function(){
if(sending) x.abort(); //如果正在发送,则取消
x = new XMLHttpRequest();
sending = true;
x.open("GET",'http://127.0.0.1:8000/delay');
x.send();
x.onreadystatechange = function(){
if(x.readtState === 4){
//修改表示变量
sending = false
}
}
}
btns[1].onclick = function(){
x.abort();
// alert(23432);
}
</script>
</body>
</html>
判断标示变量为true,取消发送。然后执行下面语句,继续发送新的请求。