禁用某些AJAX调用的ajaxSetup默认值

时间:2009-11-10 15:00:37

标签: jquery ajax

我构建的企业内部网大量使用AJAX调用来加载表和其他资源。默认情况下,我有一个带有加载gif的模态对话框,让用户知道页面正在加载。我用jQuery的ajaxSetup设置了这个默认值。

我使用带有自动填充功能的搜索框有几个方面。我注意到每次输入一个字符时都会出现加载对话框。有没有办法只为那个调用禁用ajaxSetup?

感谢您的帮助!

5 个答案:

答案 0 :(得分:11)

您应该能够在每次ajax调用时传递一个新的选项对象,以便在需要时覆盖默认设置。

不确定你的模态是在发送之前是什么时候或你有什么,但我想你会从下面得到图片。

$.ajax({ beforeSend: function() { /* do nothing */ }....

答案 1 :(得分:9)

我猜你为全局Ajax事件设置了一个处理程序来创建对话框。可以针对特定请求禁用这些事件(来自jQuery文档):

全球活动

这些事件被广播到DOM中的所有元素,触发任何可能正在侦听的处理程序。您可以像这样监听这些事件:

$("#loading").bind("ajaxSend", function(){
   $(this).show();
 }).bind("ajaxComplete", function(){
   $(this).hide();
 });

对于特定的Ajax请求,可以通过传入全局选项来禁用全局事件,如下所示:

$.ajax({
   url: "test.html",
   global: false,
   // ...
 });

答案 2 :(得分:1)

禁用某些AJAX调用的ajaxSetup默认值有一行添加

beforeSend

a = [1,2,20,3,30,300] b = [] count = 0 for i in range(1,4): b.append(sum(a[count:count+i])) count += i print(b) (本地事件)=此事件将在Ajax请求启动之前触发,允许您修改 XMLHttpRequest对象

答案 3 :(得分:0)

为了避免使用这种方式的某些特定网址

$.ajaxSetup({
 beforeSend: function (xhr)
            {   
                    if(this.url !="specific urls"){
//code here
                    }
            },
})();

答案 4 :(得分:-4)

使用 $。ajax()调用来覆盖$ .ajaxSetup()中建立的默认值。