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

Partitioned Cookie(CHIPS)在同iframe中二次请求未发送的问题

问题分析与解决方案

核心原因拆解

你的问题涉及两个关键浏览器机制:Chrome的CHIPS(Cookie Having Independent Partitioned State)分区规则,以及跨域fetch请求的凭证处理逻辑。

1. CHIPS分区的绑定逻辑

当bot.com的iframe(第三方站点)向auth.com发送请求时,Chrome会将auth.com设置的SameSite=None Cookie自动分区到顶级站点site1.com——这是Chrome 115版本后默认的第三方Cookie分区行为。这个分区意味着:只有当请求发起上下文的顶级站点是site1.com时,该Cookie才会被允许发送。

但第二个请求来自同一个iframe却未携带Cookie,问题出在第二个关键因素:

2. 跨域fetch请求的凭证设置

跨域fetch请求的默认行为是credentials: "same-origin",即仅在同源请求中携带Cookie。对于bot.com到auth.com的跨域请求,即使Cookie存在且符合CHIPS分区规则,如果没有显式指定credentials: "include",浏览器不会自动发送Cookie。

你可能在第一个/login请求中(比如POST场景)隐式或显式配置了凭证,但第二个/auth请求遗漏了该设置,导致Cookie未被携带。

验证与修复步骤

  • 检查并修正fetch请求的credentials参数:确保第二个请求显式添加credentials: "include",示例代码如下:
    // 正确携带Cookie的跨域fetch请求
    fetch('https://auth.com/auth', {
      credentials: 'include',
      // 其他必要配置:method、headers等
    });
    
  • 确认Cookie分区状态:在Chrome调试器的Application > Cookies > auth.com中,查看该Cookie的Partitioned列是否标记为site1.com。如果是,说明分区正常,此时只要请求符合顶级站点上下文+credentials配置,Cookie就会被发送。
  • 额外校验项:确保auth.com和bot.com均使用HTTPS(Secure属性要求Cookie仅在HTTPS环境传输),且iframe未被设置限制跨域凭证的sandbox属性(比如未添加allow-same-origin等必要权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:16:28