在jquery中捕获所有ajax请求

时间:2012-01-28 07:49:56

标签: jquery ajax

每次发送ajax请求时,我都希望显示“正在加载”进度条。是否有可能通知使用jQuery发送ajax请求ANYTIME?

3 个答案:

答案 0 :(得分:24)

您可以使用$.ajaxSetup()方法设置将应用于整个页面的全局AJAX属性:

$.ajaxSetup({
    beforeSend: function() {
        // show progress spinner
    },
    complete: function() {
        // hide progress spinner
    }
});

答案 1 :(得分:4)

由于某种原因$.ajaxSetup()没有为我工作。在阅读了docs后,我发现了以下内容:

  

注意:全局回调函数应设置为各自的   全局Ajax事件处理程序方法-ajaxStart(),. ajaxStop(),   .ajaxComplete(),. ajaxError(),. ajaxSuccess(),. ajaxSend() - 而不是   在$ .ajaxSetup()的选项对象中。

请尝试$.ajaxStart()$.ajaxComplete()

$(document).ajaxStart(function () {
    console.log('Request Initiated');
});
$(document).ajaxComplete(function () {
    console.log('Request Complete');
});

答案 2 :(得分:2)

尝试使用jQuery的ajaxStart事件