如何覆盖Jquery.ajax函数?

如何覆盖Jquery.ajax函数?,jquery,Jquery,我想覆盖Jquery中的$.ajax函数 我想使用现有的功能,并需要添加一些其他功能 例如: 将原始ajax函数放入到OriginalAjax变量中 var OriginalAjax = $.ajax $.ajax = function(xhr){ if(xhr.status ==401) { // Diplay Error in dialog box; } return(OriginalAjax(xhr));

我想覆盖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);
};

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

您可以只覆盖默认的$.ajax行为

请记住,$.ajax正在返回promise()对象,因此您还需要处理附加到done()/fail()的回调


也许这篇文章可以帮助你:

你还需要什么特别的东西吗?我在上展开了