Ajax请求重复发送问题

设置一个标识位,表示是否正在发送请求let isSending = false
具体代码:

// 1.创建对象
        let xhr = null
        let isSending = false
        const btn = document.getElementsByTagName('button')[0]

        btn.onclick = function(){
            if(isSending) xhr.bort()//如果正在发送请求,则取消该请求,并生成一个新的XHR
            xhr = new XMLHttpRequest()
            isSending = true//此时为正在发送请求
            // 2.初始化,设置请求方法和url
            xhr.open('GET', 'http://localhost:8000')
            // 3.发送
            xhr.send()
            // 4.事件绑定,处理服务端返回的结果
            xhr.onreadystatechange = function(){
                // 判断返回结果,0,1,2,3,4
                if(xhr.readyState===4){//服务端返回了所有的结果
                    // 判断响应状态码
                    isSending = false//此时已收到相应,代表请求已经发送完
                }
            }

        }
原文地址:https://www.cnblogs.com/pangqianjin/p/14791173.html