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

使用Cloudflare Worker设置Cookie:自定义过期时间问题求助

Cloudflare Worker 设置Cookie自定义过期时间的解决方案

问题根源

你的代码存在两个关键错误导致过期时间不生效:

  • 使用双引号包裹Set-Cookie字符串,无法解析模板变量${date},导致实际发送的Cookie头里Expires值是字面量${date}而非计算后的日期
  • 给Expires值添加了单引号,不符合HTTP Cookie的格式规范(Expires值不需要额外引号)

修正后的代码

addEventListener('fetch', event => {
    event.respondWith(fetchAndApply(event.request))
})

async function fetchAndApply(request) {
    // 设置过期时间:示例为1天(24小时),可自行修改
    const expireTime = 24 * 60 * 60 * 1000;
    const date = new Date();
    date.setTime(date.getTime() + expireTime);
    
    let response = await fetch(request);
    // 克隆响应以修改头信息
    response = new Response(response.body, response);
    
    // 使用反引号作为模板字符串解析变量,去掉Expires值的单引号
    response.headers.set('Set-Cookie', `pricing-mode=on; Expires=${date.toUTCString()}; Path=/`);

    return response;
}

关键说明

  • 自定义过期时间:修改expireTime的值即可,比如1周就是7 * 24 * 60 * 60 * 1000
  • date.toUTCString():将Date对象转换为符合HTTP规范的RFC 1123格式日期字符串,确保浏览器能正确识别过期时间
  • 模板字符串:必须用反引号()包裹,才能让JavaScript解析其中的${date.toUTCString()}`变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:25:28