处理所有 AJAX 调用的通用方法

Generic way to handle all AJAX calls

本文关键字:方法 调用 AJAX 处理      更新时间:2023-09-26

有没有办法检测所有AJAX调用(GET和POST)?我需要做一个通用的方式来在 AJAX 调用进程运行时显示加载div。类似于下面的代码:

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   beforeSend: function() {
       $('#loading').show();
   },
   success: function() {
       $('#loading').hide();
       // do some stuff...
}

相反,要调用每个 AJAX beforeSend()success()行为(显示和隐藏加载div),我正在寻找一种通用方法来处理它。当我有一个 AJAX 调用时,我只做:

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   success: function() {
       // do some stuff...
}

当该beforeSend()行为在此请求中是隐式时,对于success()隐藏行为也是如此。你知道我该怎么对待这个东西吗?

谢谢大家!

是的,您可以使用.ajaxStart().ajaxStop()方法执行此操作,例如:

$(document).ready(function () {
    $(document).ajaxStart(function () {
        $('#loading').show();
    }).ajaxStop(function () {
        $('#loading').hide();
    });
});
有趣的是

,我今天早上试图自己做这件事!

$('#loading').bind('ajaxSend', function() {
    $(this).show();
}).bind('ajaxStop', function() {
    $(this).hide();
}).bind('ajaxError', function() {
    $this.hide();
});
显然,有很多

不同的方法可以实现这一点,但我更喜欢将加载消息的可见性绑定到 AJAX 事件,而不是相反......