我希望用自定义包装器替换jQuery现有的$.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
调用?