我想覆盖Jquery中的$ .ajax函数

我想使用现有功能,并需要添加一些其他功能

例子:

将原始ajax函数放入OriginalAjax变量中

 var OriginalAjax = $.ajax

  $.ajax = function(xhr){

      if(xhr.status ==401)
       {
          // Diplay Error in dialog box;
       }
      return(OriginalAjax(xhr));
  });

是否可以覆盖$ .ajax函数?如果是,请告诉我们如何实现?

最佳答案

是的,你可以这么做...

var oldAjax = $.ajax;

$.ajax = function() {
     // Do your magic.
     return oldAjax.apply($, arguments);
};

...或者...
const oldAjax = $.ajax;

$.ajax = (...args) => {
     // Do your magic.
     return oldAjax(...args);
};

但是,根据您的示例判断,您应该仅使用全局事件处理程序,例如 ajaxComplete() ,您可以在其中检查响应状态。

09-20 14:47