AngularJS。如何动态更新在app.run中初始化的标头?

时间:2015-12-07 21:10:55

标签: angularjs cookies

我想为Angular应用程序中的每个请求添加自定义标头。 目前我是这样做的:

app.run(['list of dependencies', function(dependencies) {
    $http.defaults.headers.common['custom_header'] = $cookies.get('custom_cookie');
}]);

一切正常,直到我的自定义cookie没有变化。但是当更改Cookie时,$http会发送在app.run中初始化的旧Cookie。因此,对于更新标头,我需要重新加载页面。

我需要动态添加更新标头吗?当然,我可以直接更新标头,例如,在控制器中,但似乎我这样重复自己。而且这种方法使代码不清晰和复杂。

我希望在一个站点中配置所有标头。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

据我所知,您可以将文件存储在标题图中:

$http.defaults.headers.common['custom_header'] = function() { 
    return $cookies.get('custom_cookie'); 
};

这样,每次发送请求时,Angular都会从函数中获取最新的cookie值,如果不是null,则会设置标题。