如何在angular config中使用cookiesProvider

时间:2013-12-14 20:50:08

标签: angularjs cookies

我想获取cookie值并设置为提供者。这篇文章https://stackoverflow.com/a/20415679/772481提到了$ cookiesProvider。但是我该如何使用呢?

mod.config(["someProvider", "$cookiesProvider", function(someProvider, $cookiesProvider) {
    someProvider.set('configs', {'token': $cookiesProvider["XSRF-TOKEN"]})
  }]);

3 个答案:

答案 0 :(得分:29)

您可以手动注入$cookies

myApp.config(function() {
  var $cookies;
  angular.injector(['ngCookies']).invoke(['$cookies', function(_$cookies_) {
    $cookies = _$cookies_;
  }]);

  // here you can use $cookies as usual
});

答案 1 :(得分:12)

我想在每个http请求上设置特定的http标头,所以这是我的解决方案:

我正在使用run函数,因为在配置中我无法访问Cookie,请参阅http://docs.angularjs.org/guide/module

app.run(function run( $http, $cookies ){
  $http.defaults.headers.common["X-AUTH-TOKEN"] = $cookies['AUTH-TOKEN'];
});

如果您不想对该配置使用run函数(因为它很难进行单元测试),您可以为$ httpProvider编写一个拦截器,类似于:https://gist.github.com/lpsBetty/76df8d1f037db87f4a0b

答案 2 :(得分:1)

你也可以这样写:

$cookiesProvider.$get()["XSRF-TOKEN"]