express设置cookie没有被添加到浏览器
发布于 9 年前 作者 Yankai17148 14021 次预览 最后一次回复是 7 年前 来自 问答
新手一枚,今天用express设置登录状态的时候用了res.cookie,在chrome的devtool中也看得到header里有set-cookie,但是就是没有被添加到浏览器里,用req.cookies获取到的是 undefined,下面是代码
res.cookie('isLogin', 1, { expires: new Date(Date.now() + 10000 * 60 * 60 * 24 * 7) });
res.send({success: true, msg: '登录成功'});
10 回复
看了下文档,会不会是类型的问题:
@maqic
这样写的话和之前是一样的,header返回的set-cookie是
@Yankai17148 引入cookie-parser了吗?
@zp1112 引入了 而且确实也能找到返回的cookie
但是就是存不到浏览器里,是和我用的localhost有关系吗?
@Yankai17148 cookie-parser加在路由之前了吗?
这是最简单的了,你可以再检查看看哪里细节错了
可以看一下是不是因为没有设置默认的domain
请求应该没有跨域吧。没跨域的话,默认应该是能看到 domain 的
还有 connect.sid 应该是 session 级的吧。
@Yankai17148 设置cookie的value类型错了,官方文档上面有写,name:string,value:Object 或者String, 你上面是Number类型,所以有问题。
@Yankai17148 如果你用的cors做的跨域的话,我的解决方法是 在服务器端,配置cors的时候如下 app.use(cors({credentials: true, origin: true})) 在客户端发送请求的时候加入 credentials: ‘include’
希望能帮到你