猴子修补jQuery Ajax

时间:2016-03-03 11:52:14

标签: jquery

我希望用自定义包装器替换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调用?

0 个答案:

没有答案