【发布时间】:2019-12-16 16:13:28
【问题描述】:
我能够成功创建我的 cookie,并且可以在控制台中清楚地看到它们。现在的问题是我想将这些 cookie 发送到浏览器,但我无法做到这一点。当我打开我的 Chrome 并转到 cookie 时,它们并不存在
我已将安全选项设置为 false 并将 httponly 设置为 false,但它似乎不起作用
req.session.cart = cart;
var cookieValue = JSON.stringify([req.session.cart],{secure:false, maxAge: 180 * 60 * 1000, httpOnly: false });
var cookie = req.cookies.cookieName;
// no: set a new cookie
res.cookie('cookieName',cookieValue);
console.log('cookie created successfully');
// yes, cookie was already present
console.log('cookie exists', cookieValue);
res.redirect('/');
当我创建 cookie 时,它们必须出现在浏览器中
【问题讨论】:
-
当您使用
res.redirect而不是res.send时,cookie 会发生什么情况?因为我愿意打赌重定向也不会设置 cookie 数据。如果您要重定向,那么无论如何都没有理由设置任何 cookie。但是,如果您要提供真实页面,那么您通常希望将 cookie 管理作为中间件功能,例如它将以next()结尾,而不是实际的响应操作(如send或render或redirect);这将发生在链中的下一个函数中。
标签: node.js express session-cookies