Ajax-14:请求重复发送问题

简介: Ajax-14:请求重复发送问题

目标:当点击最新请求的时候,将上一次未完成的请求取消掉

  • 通过定义变量来存储表示是否正在发送请求的布尔值
  • 当用户点击发送请求的时候,开始判断这个变量是否为true,如果为true,则取消请求
  • 然后将变量置为true,直到检测到返回状态码为4将变量置为false

代码

let isSending = false;
btn[0].onclick = function() {
    // 在此处判断是否正在发送,如果正在发送则取消
    if(isSending) xhr.abort();
    isSending = true;
    xhr = new XMLHttpRequest();
    xhr.open("GET","http://localhost:8000/cancel");
    xhr.send();
    xhr.onreadystatechange = function() {
        if(xhr.readystate === 4) {
            isSending = false;
        }
    }
};

实现效果

image.png

相关文章
|
18天前
|
JSON 前端开发 JavaScript
axios请求成功而$.ajax却不行排错
axios请求成功而$.ajax却不行排错
15 2
|
18天前
|
前端开发
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
解决前端ajax跨域请求不携带cookie信息JSESSIONID的问题
|
18天前
|
XML JSON 前端开发
深入了解JavaScript中的AJAX和HTTP请求
深入了解JavaScript中的AJAX和HTTP请求
|
18天前
|
XML JSON 前端开发
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
Ajax技术【Ajax技术详解、 Ajax 的使用、Ajax请求、 JSON详解、JACKSON 的使用 】(一)-全面详解(学习总结---从入门到深化)
61 1
|
18天前
|
JSON 前端开发 JavaScript
Fetch API与Ajax请求
Fetch API是JavaScript的一种新方法,用于网络请求,提供简洁的Promise-based语法和更多功能,如处理头、取消请求及跨域支持,比Ajax更强大。尽管不完全替代Ajax,尤其在老浏览器或需要底层控制时,Fetch API仍是现代浏览器中获取资源的优选工具。例如,以下代码展示了如何使用Fetch API进行GET和POST请求。
|
18天前
|
XML JSON 前端开发
学习Ajax使用异步对象发送请求
Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种用于创建更好、更快以及交互性更强的Web应用程序的技术。
25 3
|
18天前
|
前端开发
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
|
18天前
|
XML JSON 前端开发
|
18天前
|
前端开发 JavaScript
|
18天前
|
JSON 前端开发 安全
浏览器跨域限制:为什么浏览器不能跨域发送Ajax请求?
浏览器跨域限制:为什么浏览器不能跨域发送Ajax请求?
42 0