Javascript jquery ajax发送前等待发送

Javascript jquery ajax发送前等待发送,javascript,jquery,ajax,timeout,Javascript,Jquery,Ajax,Timeout,我试图在ajaxsetup beforesend函数中使用settimeout,但似乎发生的是发送ajax,并在超时后调用wait函数。我想在超时期间停止发送请求 jQuery.ajaxSetup({ beforeSend: function(){ setTimeout(continueExecution,1000) return true; } }); 有人能给我建议一种方法来阻止从ajaxsetup发送请求吗?你可以试试,将ajax请求放入

我试图在ajaxsetup beforesend函数中使用settimeout,但似乎发生的是发送ajax,并在超时后调用wait函数。我想在超时期间停止发送请求

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

        return true;
    }
});

有人能给我建议一种方法来阻止从ajaxsetup发送请求吗?你可以试试,将ajax请求放入setTimout函数

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;
}
jQuery.ajaxSetup({
beforeSend:function(){
var i=0;
函数testt(){
i++;
控制台日志(i);
如果(i<10000){
testt();
}
}
testt();
返回true;
}

}))

您可以返回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;
    }
});

“Description:为将来的Ajax请求设置默认值。不建议使用它。”我只是想通知您为什么您希望在请求之前有一个延迟,如果您发布您的实际原因,可能会有更好的解决方案。感谢您的帮助,它很有效,有两个问题是a)如果我删除了console.log,那么请求会立即发送b)它会阻塞ui,但不是按照我想要的方式工作。你有解决这些问题的办法吗?我想jcubic的答案会满足你的需要。你试过了吗?我没有更好的解决方案。非常感谢,它可以工作,唯一的问题是当我添加时。为ajax请求完成后,它不工作,但我可以不用它