我在 Express 4.x 中遇到问题。我无法设置任何 cookie。我想通过 Ajax 请求设置一个 cookie,我发出请求,我的服务器端 res.cookie() 被执行,在我的响应 header 中我可以找到具有特定名称和值的“set-cookie” header ,但没有发生,cookie 未注册。我没有 HttpOnly 或安全标志。
Cookie 设置示例:
res.cookie('my_cookie','value',{maxAge:500,secure:false,httpOnly:false});
我注意到,如果我将 maxAge 设置为 500,响应 header 中的 cookie 过期日期大约是 5 小时前,所以我尝试添加更大的值,但没有任何反应。
这就像我的 set-cookie
header 被忽略了。我不使用 AngularJS,只使用 jQuery。
如果我从 js 控制台将 set-cookie 内容放入 document.cookie 中,则 cookie 已注册..
提前致谢,抱歉我的英语不好。
最佳答案
4.0 版从库中删除了许多方便的中间件,以实现更加模块化的架构;在这种情况下,您需要引用 cookie-parser中间件。没有它,req.cookies 只是一个空的 {}。
$npm 安装 cookie-parser
var express = require('express')
var cookieParser = require('cookie-parser')
var app = express()
app.use(cookieParser())
您还需要它来签署 cookies:
关于node.js - 在 ExpressJs 中设置 Cookie 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166564/