jQuery deferred method and ajax beforeSend()

jQuery deferred method and ajax beforeSend()

本文关键字:beforeSend ajax and deferred method jQuery      更新时间:2024-05-08

通过在$.ajax 中使用延迟对象

  • 成功回调可以由deferred-method done()代替
  • deferred-method fail()替换的错误回调acn
  • 完整的回调可以用always()代替

通过使用

var jqxhr = $.ajax({
                url: Config.baseUrl+"/ajax/favourites/set-favourite.ajax",
                dataType: "json",
                data: attrs,
                type: "POST",
                beforeSend: function(){
                    console.log("before send");
                }
            });

如何使用延迟对象来实现beforeSend-callback

为什么我不在$.ajax函数中使用beforeSend回调?因为请求在模型实例内(http://canjs.com/docs/can.Model.model.html#section_Non_standardServices)因此,模型对象执行请求,所有其他的suff,如操作DOM,都将在延迟对象中执行。我想在发送ajax请求之前操作DOM。

我怎么能那样做?

您可以将全局jQuery事件ajaxStart附加到触发AJAX请求的任何元素。这应该从本质上复制beforeSend的功能。

$(".ajax").ajaxStart(function() {
    $(".document").append("AJAX begun");
});

Fiddle。