后端express设置跨域后,前端没有保存cookie
来源:7-16 联调-介绍html页面
菜鸟x
2021-08-18
这里已经看到了cookie,但是application里面没有保存cookie,请求的session里面也没username等信息
app.use(session({
secret: 'adb123_', // 密匙
name: 'session_id', // 保存在本地 cookie 的一个名字,默认为connect.sid 可以不设置
saveUninitialized: true, // 强制将未初始化的 session 存储,默认为true。建议为 true
resave: true, // 强制保存 session,即使它没有变化,默认为true。建议设置为false
// rolling: true, // 在每次请求时设置 cookie,这将重置 cookie 过期时间,默认为 false
cookie: {
path: '/', // 默认配置
httpOnly: true, // 默认配置
maxAge: 24 * 60 * 60 * 1000 // session过期时间为一天
}
}))
// 跨域的设置
app.use((req, res, next) => {
const origin = req.headers.origin
res.setHeader('Access-Control-Allow-Origin', origin)
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT')
const headers = 'X-Custom-Header, Origin, X-Requested-With, Content-Type, Accept'
res.setHeader('Access-Control-Allow-Headers', headers)
// 发送请求时带 cookie
res.setHeader('Access-Control-Allow-Credentials', true)
const maxAge = 24 * 60 * 60 * 1000
// res.cookie("name", "zhangsan", {maxAge, httpOnly: true})
next()
})
写回答
2回答
-
双越
2021-08-19
跨域设置 cookie
1. 服务端要设置
res.header("Access-Control-Allow-Credentials",true);
2. 前端要设置 withCredentials
https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials
022021-08-24 -
双越
2021-08-18
比较怪异。
我看你截图中,请求的服务端 host 是 localhost:3000 ,你前端 host 是哪个?有没有跨域
022021-08-18
相似问题