我从节点后端设置了一些cookie,如下所示:
res.setHeader('Set-Cookie', 'id=' + result.id + '; expires=' + new Date(new Date().getTime() + (1800 * 1000)).toUTCString() + '; path=/');
我想知道我的Angular应用程序何时到期,所以我设置了一个$ http响应拦截器,我的拦截器返回一个响应属性:
response: function(response) {
console.log(response.headers());
return response;
}
但是response.headers()
会显示所有标题,但会显示Cookie,但我可以在Chrome的网络标签上看到它们。我没有明确地将cookie设置为httpOnly。我在这里缺少什么?
答案 0 :(得分:0)
这是一个CORS问题。
Set-Cookie
需要添加到服务器上允许的标头列表中。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Set-Cookie");
next();
});
答案 1 :(得分:0)
如果您要设置这些cookie的电话是ajax请求,那么您需要确保在$ http服务上将withCredentials
config选项设置为true。有关详细信息,请参阅Angular docs。