我想覆盖Jquery中的$ .ajax函数
我想使用现有功能,需要添加一些其他功能
示例:
将原始ajax函数输入到OriginalAjax变量
var OriginalAjax = $.ajax
$.ajax = function(xhr){
if(xhr.status ==401)
{
// Diplay Error in dialog box;
}
return(OriginalAjax(xhr));
});
可以覆盖$ .ajax函数吗?如果'是'请告诉我们如何实施它?
答案 0 :(得分:18)
是的,你可以这样做......
var oldAjax = $.ajax;
$.ajax = function() {
// Do your magic.
return oldAjax.apply($, arguments);
};
...或...
const oldAjax = $.ajax;
$.ajax = (...args) => {
// Do your magic.
return oldAjax(...args);
};
但是,根据您的示例判断,您应该使用全局事件处理程序,例如ajaxComplete()
,您可以在其中检查响应状态。
答案 1 :(得分:0)
您可以覆盖默认的$ .ajax行为。
请记住$ .ajax正在返回promise()对象,因此您还需要处理附加到done()/ fail()的回调。
也许这篇文章可以帮助您:http://www.svlada.com/blog/override-jquery-ajax-handler/