猴子补丁jqueryajax
我希望用自定义包装器替换jQuery现有的猴子补丁jqueryajax,jquery,Jquery,我希望用自定义包装器替换jQuery现有的$.ajax调用。我能得到的最接近的是 (function ($) { var internalAjax = $.ajax; function getAccessToken() { var deferredObject = $.Deferred(); // logic to acquire the auth token return deferredObject.promise();
$.ajax
调用。我能得到的最接近的是
(function ($) {
var internalAjax = $.ajax;
function getAccessToken() {
var deferredObject = $.Deferred();
// logic to acquire the auth token
return deferredObject.promise();
}
$.fn.ajax = function(options) {
return getAccessToken().then(function(token) {
options.beforeSend = function(request) {
request.setRequestHeader('Authorization', 'bearer ' + token);
};
return internalAjax(options);
});
}
})(jQuery);
我遇到的问题是,对$.getJSON
的调用仍然使用原始的$.ajax
,而不是我的自定义包装器。我试图替换$.fn.ajax
和$.fn.extend
,但是仍然调用了原始的`$.ajax方法
如何替换jquery中的内部
ajax
调用?您需要将$.fn.ajax=function(options){
更改为$.ajax=function(options){
因为ajax
是一种静态方法,而不是一种有帮助的插件方法,而且在我的脚本之后加载了第二个版本的jquery,所以我的补丁被吹走了:/