node.js - 在 ExpressJs 中设置 Cookie 失败

标签 node.js express cookies

我在 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:

enter image description here

关于node.js - 在 ExpressJs 中设置 Cookie 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166564/

相关文章:

node.js - 如何全局安装支持 es6 导入的 node-cli 工具?

javascript - PropType 没有发出警告

javascript - MEAN 应用程序 - 无法在我的查找请求中使用查询

google-chrome - 有没有办法在Chrome中查看cookie的创建来源?

javascript - 如何使用回调从带有 node.js 和 ejs 的 mysql 中获取数据?

node.js - 为什么 Node.js AWS-SDK 在创建本地队列时返回错误的 SQS 队列 URL

javascript - node.js - 静态文件 CSS/JS 在 express 中不起作用

typescript - Jest expect 不会从异步等待函数中捕获抛出

browser - Web 浏览器 cookie key 的最大大小是多少?

cookies - 带有 chrome 扩展的 cookie 或 localStorage