在ExpressJs中设置Cookie失败

时间:2016-03-22 22:37:16

标签: node.js express cookies

我在Express 4.x中遇到问题。我无法设置任何Cookie。我想通过Ajax请求设置一个cookie,我做了请求,我的服务器端res.cookie()被执行,在我的响应头中我可以找到我的' set-cookie'具有特定名称和值的标头,但没有任何反应,cookie未注册。我没有HttpOnly或安全标志。

Cookie设置示例:

res.cookie('my_cookie','value',{maxAge:500,secure:false,httpOnly:false});

我注意到的是,如果我将maxAge 500设置为例如,我的响应标头的cookie到期日期大约是5小时前,所以我试图添加更大的值,但没有任何反应。

就像忽略了我的set-cookie标题。我不使用AngularJS,只是jQuery。

如果我将来自js控制台的set-cookie内容放在document.cookie中,则会注册cookie。

提前致谢,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

4.0版本从库中删除了许多便利中间件,以实现更加模块化的架构;在这种情况下,您需要引用cookie-parser中间件。如果没有它,req.cookies只是一个空的{}.

$npm install cookie-parser

var express      = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser())

您还需要它来签署cookie:

enter image description here