Express仅在localhost环境下无法设置Set-Cookie头问题求助
我最近在开发一款小型Web应用,需要通过Express从服务端设置Cookie,技术栈采用Firebase Functions、Express和CookieParser。部署到Firebase云端后功能一切正常,但本地运行时遇到了棘手的问题:响应头里完全看不到Set-Cookie字段,浏览器也没法存储Cookie。我的Node版本是v8.11.2。
初始问题代码
app.use(cookieParser()); app.get('/cookie',(req,res)=>{ res.cookie("test","This is a test"); res.end('test'); });
解决思路与方案
经过排查尝试,我发现给响应设置Cache-Control为private后,问题就得到了解决。推测是本地环境下默认的缓存策略影响了Cookie的设置逻辑,强制设置private缓存后,浏览器会正确处理响应头中的Set-Cookie字段。
修改后的可行代码
app.get('/cookie',(req,res)=>{ res.setHeader('Cache-Control','private'); res.cookie("test","This is a test"); res.end('test'); });
内容的提问来源于stack exchange,提问作者Facundo Silva
相关产品推荐
相关产品推荐

