You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动端Google Chrome重启后首次请求不携带Express.js设置的Cookie

问题原因
  • 核心原因为当前设置的是会话Cookie:Express的res.cookie方法未指定expires或maxAge参数时,默认生成会话级Cookie,生命周期与浏览器进程绑定,浏览器进程完全关闭后这类Cookie会被系统自动清理,因此重启浏览器后首次请求无法携带该Cookie。
  • 次要排查点:若配置有效期后问题仍存在,可检查移动端Chrome是否开启了「关闭浏览器时清除Cookie和站点数据」的隐私配置,该配置默认处于关闭状态,绝大多数场景下问题均由未设置Cookie有效期导致。
修复方案

修改Cookie设置逻辑,明确指定Cookie的持久化有效期即可,修改后的代码示例如下:

const app = require('express')()

app.get('/', (req, res) => {
  // 配置maxAge参数指定Cookie有效期,示例为7天有效,单位为毫秒
  res.cookie('hello-world', 'this-is-the-value-of-cookie', {
    maxAge: 7 * 24 * 60 * 60 * 1000,
    httpOnly: true, // 若需要前端JavaScript读取该Cookie可设为false,否则建议开启提升安全性
    path: '/'
  })
  res.json(req.headers)
})

app.listen(80, '0.0.0.0')

如果需要该Cookie在10.0.2.2.nip.io的所有子域名下生效,可额外添加domain: '.10.0.2.2.nip.io'配置项。

验证步骤
  1. 修改代码后重启Express服务
  2. 首次访问页面完成Cookie设置,刷新确认Cookie生效
  3. 完全关闭移动端Chrome进程后重新打开,访问服务即可看到请求头已正常携带hello-worldCookie。

内容的提问来源于stack exchange,提问作者Alireza Beitari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:15:02