我正在尝试发送一个标头,每个HTTP用于ngResource(在这种情况下为auth令牌)
这有些工作:
app.factory('User', ['$resource','$window',
function($resource,$window,liftHost, liftBasePath) {
return $resource('/api/users/:id',{},{
get: {
method: 'GET',
headers: {'token': $window.sessionStorage.token}
}
});
}]);
此代码的问题在于,在第一次调用之后,每个GET请求将具有相同的标头值。它没有得到重新评估。因此,如果用户注销,然后重新登录,则会更改 $ window.sessionStorage.token 的值,但请求将使用令牌的先前值发送。
我创建了一个带有$ httpBackend模拟的小型弹药来说明它。
答案 0 :(得分:0)
以下是Plunker,其中包含此工作
我介绍了一个注入User和Session服务的TokenService。这比取决于$ window服务要简洁一些。此外,我将令牌设为对象而不是原始字符串。这允许令牌通过引用而不是值传递。
app.factory('Token', [
function() {
return {
value: "a"
}
}
]);