语法
$.ajaxSetup(name:value, name:value, ...)
设置全局 AJAX 默认选项。
既然是全局默认选项,所以,该项中设置的参数会影响所有的$.ajax请求如$.get() $.post() $.ajax等
需要注意的是,如果在请求时重新设置了已参数值,这时请求会用新设置的值,而不是用$.ajaxSetup中默认设置的值。
另外需要提及的是$.ajaxSetup()中与$.ajax()一样,有个beforeSend:function(){}参数,是默认设置在ajax请求前执行的一个函数,该函数与$.ajaxStart()和$.ajaxSend()最大的不同在于beforeSend:function()函数是可重置的,也就是说可以直接针对不同的请求设置不同的beforeSend函数,这就方便了对于不同的请求要求预先显示不同的信息的方法。而不用$.ajaxSend的函数中进行参数判断了。所以,如果想给同一个页面上不同的ajax请求(包括load、get、post)设置不同的loading信息,无疑,给每一个请求设置beforeSend函数是很好的选择,而如果用全局事件$.ajaxSend的话,就需要在内部进行参数验证,靠检测不同的参数值来执行不同的效果,这远不如beforeSend函数方便。
需要着重强调的是,如果试图重新设置$.ajaxStart或$.ajaxSend事件,是不可能的,再次设置只会增加全局事件的执行次数(新设置的全局事件会加到已经设置的事件的后面)而beforeSend函数则不同,可以重新设置。
大家看下面的例子:
<html>
<head>
<script language="javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#ii").click(function(){$.ajaxSetup({cache:false,url:"jx.html",beforeSend:function(){alert("post请求之前");},success:function(result){alert(result);}});
$.post("jx.asp");
});
$("#jj").click(function(){$.ajaxSetup({cache:false,url:"jx.html",beforeSend:function(){alert("get请求之前");},success:function(result){alert(result);}});
$.get();
});
})
</script>
</head>
<body>
<div id="d" name="id" style="width:200px; height:100px;">bbb</div>
<button id="ii">加载</button>
<button id="jj">加载2</button>
</body>
</html>
上面的例子在不同的click事件中都设置了beforeSend函数,这两个函数是互不影响的,对不同的单击事件各自儿独立执行。
但大家再看下面的例子
<html>
<head>
<script language="javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#ii").click(function(){
$("#ii").ajaxSend(function(){alert("post请求");});
$.post("jx.asp",function(a){alert(a);});
});
$("#jj").click(function(){
$("#jj").ajaxSend(function(){alert("get请求");});
$.get("jx.html",function(a){alert(a);});
});
});
</script>
</head>
<body>
<div id="d" name="id" style="width:200px; height:100px;">bbb</div>
<button id="ii">加载</button>
<button id="jj">加载2</button>
</body>
</html>
虽然上面也是在两个click事件中分别设置了$("#id").ajaxSend()事件,但只要两个click事件都执行一次之后,两个ajaxSend事件就会追加到一起,而且会随着执行次数的增加而重复。这充分显示了ajaxSend()事件的全局性类似的ajaxStart()也有类似的效果。
所以,如果要执行区别化的请求前事件,最好用$.ajaxSetup()设置一下每一个的beforeSend()事件。在写法上,并没有太麻烦的,反而比用ajaxSend()事件然后再进行参数判断要简单的多。
相关推荐
同时,可以通过`$.ajaxSetup()`来设置全局的默认选项。 总的来说,$.ajax()方法是jQuery中处理Ajax请求的核心工具,它的强大在于可以灵活地控制请求的各个阶段,适应各种不同的网络交互需求。熟练掌握$.ajax()方法...
- 默认值:无(全局配置可通过`$.ajaxSetup()`设置) - 描述:定义请求超时时间(毫秒),如果请求超过了这个时间限制,则会自动中断请求。此选项对于防止长时间等待无响应的服务器非常有用。 #### 4. `async` - ...
在JavaScript和jQuery的世界里,`$.ajaxSetup()` 是一个非常实用的方法,它可以用来设置全局的Ajax请求配置。当你有许多Ajax请求需要遵循相同预处理规则时,`$.ajaxSetup()` 就能大大简化代码,避免重复的工作。在...
为了提高性能,可以使用$.ajaxSetup()来设置全局的Ajax选项,或者使用$.getJSON()($.get()的JSON版本)和$.getScript()(加载并执行远程JavaScript)等简化的API。 总的来说,$.get()和$.post()是jQuery中实现...
`$.ajaxSetup()`可以全局设置Ajax请求的默认行为,包括响应头的处理。例如,可以设置`xhrFields`来访问服务器的自定义响应头。 ### 9. 缓存控制 默认情况下,GET请求会被缓存,可以通过设置`cache: false`禁用缓存...
这个设置覆盖了全局的超时设置,可以通过$.ajaxSetup()方法进行全局配置。 4. async:此参数为布尔值,默认为true,表示请求是异步进行的。如果设置为false,那么请求就是同步的,这会锁定浏览器,直到请求完成,...
- **$.ajaxSetup()**:设置全局Ajax选项。 - **$.getScript()**:异步加载并执行JavaScript脚本。 - **$.getJSON()**:获取JSON数据。 - **$.param()**:序列化表单数据为URL查询字符串。 - **$.proxy()**:创建一个...
例如,`$.ajaxSetup()`可以设置全局Ajax选项,`$.ajaxComplete()`可用于注册在所有Ajax请求完成后触发的回调函数。 总的来说,jQuery与Ajax的结合使得前端开发者能够更便捷地实现动态交互,提升用户体验。在"jQuery...
这个设置可以覆盖全局的$.ajaxSetup()方法设置的超时时间。 4. async:这个参数是Boolean类型,指定请求是否为异步。默认值为true,表示请求是异步的。将此参数设置为false,可以执行同步请求,但同步请求会锁定...
jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非... 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置。
此设置会覆盖全局的$.ajaxSetup()方法中的超时设定。 4. **async**: 这是Boolean类型的参数,其默认值为true,意味着所有请求都是异步的。如果将其设为false,请求将会变为同步,这会导致浏览器在请求完成之前锁定...
在JavaScript的jQuery库中,`$.getJSON`是一个非常常用的方法,用于从服务器获取JSON格式的数据。然而,在某些情况下,尤其是在Internet Explorer(IE)浏览器中,可能会遇到`$.getJSON`失效的问题,导致数据无法...
Microsoft failed to properly // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available // This function can be overriden by calling jQuery.ajaxSetup xhr:function(){ ...
5. **$.ajaxSetup()**:全局配置所有的Ajax请求,包括错误处理和默认设置。 【jQuery Ajax的实战应用】 在提供的课程材料中,可能包含了一些关于使用jQuery进行Ajax交互的实例。比如: - cours1.pdf 和 cours2....
$.jQuery( selector [, context] ), .jQuery( element ), .jQuery( elementArray ), .jQuery( jQueryObject ), .jQuery( ) $.jQuery( html [, ownerDocument] ), .jQuery( html, props ) $.jQuery( fn ) jQuery ...
2. **Ajax设置**:可以通过$.ajaxSetup()设置全局Ajax选项,如timeout(超时时间)、dataType(预期数据类型)等。 3. **局部Ajax设置**:在特定的$.ajax()、$.get()等函数调用中,可以设置局部的Ajax选项,覆盖全局...