所有后面的 Ajax 调用任何函数都将使用新的设置参数,除非它们调用时设置了各自的参数重载了这个默认值。 直到下一次调用$.ajaxSetup()
.
注意: 此处指定的设置会影响所有 $.ajax
或基于AJAX的衍生方法,如$.get()
的调用。这可能会导致不良的行为因为其他调用(例如,插件)可能希望正常的默认设置。出于这个原因,我们强烈建议您不要使用此API。相反我们建议,在调用时明确设置选项或定义一个简单的插件。
举个例子,我们可以事先设置服务器重复响应的默认URL参数:
1
2
3
|
$.ajaxSetup({
url: 'ping.php'
});
|
现在每次Ajax请求将自动使用这个"ping.php" URL:
1
2
3
4
|
$.ajax({
// url not set here; uses ping.php
data: {'name': 'Dan'}
});
|
注意: 全局回调函数应使用他们各自的全局Ajax事件处理方法-.ajaxStart()
, .ajaxStop()
, .ajaxComplete()
, .ajaxError()
, .ajaxSuccess()
, .ajaxSend()
-设置,而不是为 $.ajaxSetup()
设置 options
对象。
例子:
设置 AJAX 请求默认地址为 "/xmlhttp/",禁止触发全局 AJAX 事件,用 POST 代替默认 GET 方法。其后的 AJAX 请求不再设置任何选项参数。
1
2
3
4
5
6
7
|
$.ajaxSetup({
url: "/xmlhttp/",
global: false,
type: "POST"
});
$.ajax({ data: myData });
|
$.ajaxSetup({
type:'POST',
beforeSend:function(xhr, settings) {
xhr.setRequestHeader('X-CSRF-TOKEN', _token);
},
success:function(data, statusText, xhr) {
if (this.info)
infoTip(this.info);
if (this.task)
this.task.call(this, data, statusText, xhr);
},
error:function(data, status, xhr) {
if (status == 'timeout') {
errorTip('请求超时,请检查网络是否正常');
} else if (status == 'parsererror') {
errorTip('登陆失效,请重新登陆');
} else {
var rs = eval('(' + data.responseText + ')');
errorMsg(rs.exception.message);
}
}
});
var factoryDevNo = $('#winProSort').data('factoryDevNo');
var $proItems = $('.pro-list .pro-item');
var sortingRecommendeds = [];
$proItems.each(function(i) {
var $this = $(this);
var productId = $this.data('id');
var serialNumber = i+1;
var type = $this.find('.recommend input').prop('checked') ? 1 : 0;
var pro = {factoryDevNo:factoryDevNo, productId:productId, serialNumber:serialNumber, type:type};
sortingRecommendeds.push(JSON.stringify(pro));
})
$.ajax({
url: 'ecommended.json',
data: $.param({sortingRecommendeds:sortingRecommendeds}, true),
info: '排序保存成功!',
task: function(data) {
closeWin('winProSort');
}
})