0

这是我的ajax调用:

 $.ajax({
                        url: "AutoRFQ_Vendors_ST.aspx/BindVesselGrid",
                        type: "POST",
                        timeout: 3000,
                        data: JSON.stringify(sendingdata),                  
                        contentType: "application/json",
                        success: function (data) {
    //do something
    }

这是我的 CSS 加载器:

  ajaxStart: function () { $body.addClass("loading"); },
            ajaxStop: function () { $body.removeClass("loading"); }

当我进行一个响应d:''空字符串但我的ajaxstop:事件没有触发的 ajax 调用时。

4

2 回答 2

0

您必须在 ajax() 上完全隐藏您的加载程序,例如:

ajax({
    complete: function(){
        $body.removeClass("loading");
    }
});

在执行成功或错误回调之后完成执行。

于 2016-11-28T06:21:34.830 回答
0

您需要了解ajaxStartajaxStop事件属于 jQuery 中的全局事件处理程序。因此,您需要将它们挂钩document而不是$ajax接听电话。

您需要将代码重写为,

$(document)
 .ajaxStart(function () {
   $body.addClass("loading");
 })
.ajaxStop(function () {
   $body.removeClass("loading");
});

希望这可以帮助!

于 2016-11-28T06:26:28.807 回答