阻止AngularJS拦截器在某些URL上添加令牌

时间:2016-01-14 16:59:50

标签: javascript angularjs node.js google-maps interceptor

在AngularJS / Node应用程序中,我正在使用拦截器在我的http请求中注入一个身份验证令牌:

.factory('AuthInterceptor', function($q, $location, AuthToken){

var interceptorFactory = {};
//
// Méthode pour propager le token d'identification dans les headers des pages web
//
interceptorFactory.request = function(config){
    var token = AuthToken.getToken();
    if (token){
        config.headers['x-access-token'] = token;
    }
    return config;
};
//
// Méthode pour empécher la navigation si pas de token
//
interceptorFactory.responseError = function(response){
    if (response.status == 403){
        $location.path('/login');
    }
    return $q.reject(response);
};

return interceptorFactory;
});

但是,这种机制会阻止我的google api地理编码请求生效,因为我收到以下回复:

多源请求被阻止(跨源请求):“同源”策略不允许在http://maps.googleapis.com/maps/api/geocode/json?address=上接收远程资源。原因:CORS标题«Access-Control-Allow-Headers»中缺少“x-access-token”标记

所以,如果我的http请求离开我的网站,我试图阻止我的拦截器注入x-access-token,但是我无法获得我要求测试它的URL。

我们的想法是能够测试在http请求中调用哪个URL,如果不在我的服务器上,则不要添加x-access-token。

我试图在我的函数参数中添加AuthToken后的$ http,但是我得到了一个“循环错误”。

有人知道如何规避这个问题吗?

提前谢谢!

0 个答案:

没有答案