简体   繁体   English

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

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

I am stuck at one thing that can i get the custom parameters form the restangular interceptor 我陷入一件事,我可以从矩形拦截器获取自定义参数

here is the requesting with the restangular 这是与矩形的要求

<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>

here is one parmeter name skipAuth i want to get in the interceptor. 这是一个我想进入拦截器的parmeter名称skipAuth as i don't want to pass the parameter through one("skipAuth",true) . 因为我不想通过one(“ skipAuth”,true)传递参数。 i don't want to send this skipAuth parameter to the server, just want to check at interceptor. 我不想将此skipAuth参数发送到服务器,只想检查拦截器。

here is the my interceptor code 这是我的拦截器代码

<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>

Use Full interceptor 使用完全拦截器

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