我构建的企业内部网大量使用AJAX调用来加载表和其他资源。默认情况下,我有一个带有加载gif的模态对话框,让用户知道页面正在加载。我用jQuery的ajaxSetup设置了这个默认值。
我使用带有自动填充功能的搜索框有几个方面。我注意到每次输入一个字符时都会出现加载对话框。有没有办法只为那个调用禁用ajaxSetup?
感谢您的帮助!
答案 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()中建立的默认值。