为什么我的角度响应拦截器没有列出cookie?

时间:2016-01-29 01:15:04

标签: javascript angularjs node.js cookies

我从节点后端设置了一些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。我在这里缺少什么?

2 个答案:

答案 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