2017-04-18 45 views
1

我试图让每个向服务器发出请求之前添加一个标记作为http标头的HTTP拦截器。

app.factory('httpRequestInterceptor', 
    ['$rootScope', function($rootScope) 
    { 
     return { 
      request: function($config) { 
       if($rootScope.token) 
       { 
        $config.headers['auth-token'] = $rootScope.token; 
       } 
       return $config; 
      } 
     }; 
    }]); 

上面是我的拦截器,它对我来说看起来没问题。然后,我在配置状态期间将此拦截器推送到http提供程序,如下所示。

app.config(function ($routeProvider, $httpProvider) { 
    $routeProvider 
     .when(...) 
     .otherwise({ 
      redirectTo: '/' 
     }); 
    $httpProvider.interceptors.push('httpRequestInterceptor'); 
}); 

现在看看我的浏览器控制台日志时,我得到一个错误说: "Unknown provider: httpRequestInterceptorProvider <- httpRequestInterceptor <- $http <- defaultErrorMessageResolver"

看来它无法解析拦截httpRequestInterceptor的依赖。我定义错了吗?

谢谢,感谢任何帮助!

+0

'defaultErrorMessageResolver'似乎是[角自动验证](HTTP的一部分:// jonsamwell.github.io/angular-auto-validate/)。你是否将'jcs-autoValidate'模块作为依赖包含在内? – Phil

+0

@Phil是的,我已经包含jcs-autoValidate作为模块依赖,并自动验证工作正常。 我刚刚更新了代码片段以显示整个app.js.我希望这可以帮助,并感谢伸出援手。 –

回答

0

对不起,在我的端部的愚蠢的错误,我忘记包括工厂在我的index.html:/

相关问题