覆盖jQuery方法$.POST

Overwrite jQuery method $.POST

本文关键字:POST 方法 jQuery 覆盖      更新时间:2023-09-26

我需要一种方法来覆盖jQuery $.post方法,参数url

我需要在不逐个编辑的情况下,将一个字符串附加到我拥有的每个脚本中。字符串值可能会更改,因为它是由系统创建的。

我知道有一种方法可以100%覆盖参数的值,但不仅仅是追加。

谢谢你。

根据您想要做的修改,您可以使用一个关闭的.ajaxStart或.ajaxSend方法来覆盖url参数。


一般来说,您可以使用"Duck Punching模式"修改现有的JavaScript函数。你可以阅读Paul Irish的这篇文章,了解它的工作原理http://paulirish.com/2010/duck-punching-with-jquery/

以下是他建议与jQuery一起使用的最后一种模式

(function($){
    // store original reference to the method
    var _old = $.fn.method;
    $.fn.method = function(arg1,arg2){
        if ( ... condition ... ) {
           return  .... 
        } else {           // do the default
           return _old.apply(this,arguments);
        }
    };
})(jQuery);

考虑使用自定义函数:

var updateUrl = function(url){
  return url + someStuff
}
$.post(
  updateUrl( yourUrl ),
  data,
  successCallback
);

因此,在updateUrl中封装一次重写逻辑,就这样了。