重写jquery ajax 方法
方法一
// TODO 主要功能为重写ajax $.ajaxSetup({ cache: false, headers: { "xxxxx": "xxxxx" }, beforeSend: function (XMLHttpRequest) { }, complete: function (XMLHttpRequest, textStatus) { }, error: function (xhr, textStatus, errorThrown) { } });
方法二
(function($) {
// 首先备份下jquery的ajax方法
var _ajax = $.ajax;
// 重写jquery的ajax方法
$.ajax = function(options) {
// 备份opt中error和success方法
var callback = {
"beforeSend" : function(XHR) {
},
"complete" : function(XHR, TS) {
},
"error" : function(XMLHttpRequest, textStatus, errorThrown) {
},
"success" : function(data, textStatus) {
}
}
// 判断参数中是否有beforeSend回调函数
if (options.beforeSend) {
callback.beforeSend = options.beforeSend;
}
// 判断参数中是否有complete回调函数
if (options.complete) {
callback.complete = options.complete;
}
// 判断参数中是否有error回调函数
if (options.error) {
callback.error = options.error;
}
// 判断参数中是否有success回调函数
if (options.success) {
callback.success = options.success;
}
// 扩展增强处理
var _opt = $.extend(options, {
error : function(XMLHttpRequest, textStatus, errorThrown) {
// 错误方法增强处理
callback.error(XMLHttpRequest, textStatus, errorThrown);
},
success : function(data, textStatus) {
// 成功回调方法增强处理
callback.success(data, textStatus);
},
beforeSend : function(XHR) {
// 提交前回调方法
callback.beforeSend(XHR);
},
complete : function(XHR, TS) {
// 请求完成后回调函数 (请求成功或失败之后均调用)。
callback.complete(XHR, TS);
}
});
// 返回重写的ajax
return _ajax(_opt);
};
})(jQuery);