ajax重复请求问题

Posted 江州益彤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax重复请求问题相关的知识,希望对你有一定的参考价值。

加一个标识变量
//标识变量
let isSending = false; // 是否正在发送AJAX请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>重复请求问题</title>
</head>
<body>
    <button>点击发送</button>
    <script>
        //获取元素对象
        const btns = document.querySelectorAll('button');
        let x = null;
        //标识变量
        let isSending = false; // 是否正在发送AJAX请求

        btns[0].onclick = function(){
            //判断标识变量
            if(isSending) x.abort();// 如果正在发送, 则取消该请求, 创建一个新的请求
            x = new XMLHttpRequest();
            //修改 标识变量的值
            isSending = true;
            x.open("GET",'http://127.0.0.1:8000/delay');
            x.send();
            x.onreadystatechange = function(){
                if(x.readyState === 4){
                    //修改标识变量
                    isSending = false;
                }
            }
        }

        // abort
        btns[1].onclick = function(){
            x.abort();
        }
    </script>
</body>
</html>

以上是关于ajax重复请求问题的主要内容,如果未能解决你的问题,请参考以下文章

Ajax Post请求失败[重复]

防止重复发送ajax请求

AJAX请求servlet验证代码是不是重复时总是返回值为undefined

jQuery高级Ajax

微信页面注册时重复请求的问题

带有ajax数组的JQuery $.when [重复]