jquery ajax beforesend 发送前等待

jquery ajax beforesend wait before sending

我正在尝试在 ajaxsetup beforesend 函数中使用 settimeout,但似乎发生的是 ajax 被发送并且在超时后调用等待函数。我想在超时期限内停止发送请求

jQuery.ajaxSetup({
    beforeSend: function(){
        setTimeout(continueExecution,1000)

        return true;
    }
});

有人可以建议我一种方法来阻止从 ajaxsetup

发送请求

你可以试试这个,将ajax请求放入setTimeout函数

setTimeout(function(){
  //do the ajax request
}, 2000);

祝你好运!

beforeSend没有问题。原因是 setTimeout 是异步的。如果您尝试下面的代码,您会看到,但忙等待可能不是一个好主意。

jQuery.ajaxSetup({
beforeSend: function() {
    var i = 0;

    function testt() {
        i++;
        console.log(i);
        if (i < 10000) {
            testt();
        }
    }
    testt();
    return true;
}

});

您可以 return false 取消 ajax 请求并在 setTimeout 回调中创建新请求:

$.ajaxSetup({
    beforeSend: function(jqXHR, options) {
        setTimeout(function() {
            // null beforeSend to prevent recursive ajax call
            $.ajax($.extend(options, {beforeSend: $.noop}));
        }, 5000);
        return false;
    }
});