繁体   English   中英

我如何在Restangular拦截器中获取GET参数

[英]How do i get the GET parameter in Restangular interceptor

我陷入一件事,我可以从矩形拦截器获取自定义参数

这是与矩形的要求

<pre>
 var getSaveMetricsSelectOptions = function(organizationId, metricSetId) {
            return Restangular.one('metricsets', organizationId)
                .one('metricset', metricSetId)
                .get({skipAuth:true})
                .then(function(response) {
                    return response.data;
                }, handleError);
        };
</pre>

这是一个我想进入拦截器的parmeter名称skipAuth 因为我不想通过one(“ skipAuth”,true)传递参数。 我不想将此skipAuth参数发送到服务器,只想检查拦截器。

这是我的拦截器代码

<pre>Restangular.addRequestInterceptor(
            function(elem, operation, what,url) { 
                Restangular.setBaseUrl(API_CONFIG.url);
                //Add token to all the URLs except 'client/login'
                $log.log(elem, operation, what, url);
                if (what !== 'client/login') {
                    //check for token in cookie and set it in URL
                    $log.log($cookies.get('token'));
                    var token = $cookies.get('token');
                    if (angular.isDefined(token)) {
                        Restangular.setRequestSuffix('/' + token);
                    } else {
                        //Client login issue - token not found
                        $log.log('Client login issue - token not found');
                    }

                    //Check for JWT Token and add it in Authorization Header
                    if(!elem.skipAuth) { 
                        var jwt_token = authService.getJwtToken();
                        if (jwt_token) {
                            var defaultHeaders = {Authorization: 'Bearer ' + jwt_token};
                            Restangular.setDefaultHeaders(defaultHeaders);
                        }
                    }
                }

                return elem;
            });

</pre>

使用完全拦截器

Restangular.addFullRequestInterceptor(function(elem, operation, what, url, headers, params, httpConfig) {
            Restangular.setBaseUrl(API_CONFIG.url);
            //Add token to all the URLs except 'client/login'
            $log.log(elem, operation, what, params);
            if (what !== 'client/login') {
                //check for token in cookie and set it in URL
                $log.log($cookies.get('token'));
                var token = $cookies.get('token');
                if (angular.isDefined(token)) {
                    Restangular.setRequestSuffix('/' + token);
                } else {
                    //Client login issue - token not found
                    $log.log('Client login issue - token not found');
                }

                //Check for JWT Token and add it in Authorization Header
                if (!params.skipAuth) {
                    if (!elem.skipAuth) {
                        var jwt_token = authService.getJwtToken();
                        if (jwt_token) {
                            var defaultHeaders = { Authorization: 'Bearer ' + jwt_token };
                            Restangular.setDefaultHeaders(defaultHeaders);
                        }
                    }
                }
            }
            return {
                element: elem,
                headers: headers,
                httpConfig: httpConfig
            };
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM