一、简单思路

1、定义一个变量加锁

var lock=false;

2、执行Ajax的事件起初处判断

if(lock) {return;}//如果为true就是ajax还在执行中,停止操作
lock=true;//开启

3、在Ajax返回或错误后的回调函数中

lock=false;

二、完整demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>解决重复调用</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
    $(function(){
        var lock = false;
        function ajax() {
            //判断是否正在执行,是则停止操作
            if (lock) {
                //alert("请勿重复提交");
                return;
            }
            lock = true;//开启开关
            //这里为了体现出重复调用,加了3秒个定时器
            setTimeout(function(){
                $.ajax({
                    url: "http://wxcheck.wxjump-api.cn/926pzfzo/wxcheck",//随便找的一个接口
                    dataType: "json",
                    data: {url: "www.lxtian.com"},
                    success: function (data) {
                        console.log("执行成功");
                        lock = false;//结束把开关关掉
                    },
                    error:function(){
                        lock=false;//结束把开关关掉
                    }
                });
            },3000);//3秒内点击多少次,都只执行一次
        }

        $("#btn").on("click", function () {
            ajax();
        })
    })
</script>
<button id="btn">点击</button>

</body>
</html>