拦截传出 Kendo 网格调用以添加 JWT 授权 header

Intercepting outgoing Kendo Grid calls to add JWT authrization header

我正在使用 AngularJs 开发单页应用程序。我的应用程序使用 JWT Authorization header 令牌进行授权。我有 agularJs 拦截器,它将授权 header 添加到来自我的 SPA 应用程序的每个传出 api 调用。

我最近将 Kendo UI 添加到应用程序中,我注意到 Kendo 网格发出的 api 调用没有通过我的 Angular拦截器。

是否有一种干净的方法来拦截来自 KendoUi 组件的所有 API 调用,以便我可以添加授权 header 令牌?

  function setAuthHeader(req) {

        var token = tokenStoreService.getToken();
        if (token) {
            req.setRequestHeader('Authorization', 'Bearer ' + token);
        }
    }

    function setGridAuthorization(dataSource) {
        if (dataSource && dataSource.transport && dataSource.transport.options) {
            var opt = dataSource.transport.options;
            if (opt.read) opt.read.beforeSend = setAuthHeader;
            if (opt.update) opt.update.beforeSend = setAuthHeader;
            if (opt.destroy) opt.destroy.beforeSend = setAuthHeader;
            if (opt.create) opt.create.beforeSend = setAuthHeader;

        } else if (dataSource && dataSource.transport) {
            var tran = dataSource.transport;
            if (tran.read) tran.read.beforeSend = setAuthHeader;
            if (tran.update) tran.update.beforeSend = setAuthHeader;
            if (tran.destroy) tran.destroy.beforeSend = setAuthHeader;
            if (tran.create) tran.create.beforeSend = setAuthHeader;
        }
    }