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

Apollo Client HttpLink子域名场景下same-origin配置不携带Cookie问题问询

问题根因

credentials: 'same-origin'配置不符合跨子域名场景的要求:

  • 浏览器同源策略的判定标准为协议、完整域名、端口三者完全一致,auth.example.com和api.example.com属于不同源,哪怕共享顶级域名也不符合same-origin的触发条件,因此浏览器不会主动携带Cookie。

修复方案

将credentials配置改为include即可,修改后的配置参考:

const hasuraHttpLink = createHttpLink({  
  uri: 'https://api.example.com', // 建议补全请求协议,避免相对路径解析异常
  credentials: 'include'
});

WebSocketLink正常的原因

WebSocket握手请求默认会携带符合Domain作用域的Cookie,不受HttpLink的credentials配置约束,只要Cookie属性、CORS配置符合要求就能正常发送,因此不会触发该问题。

额外检查项(可选)

如果修改配置后仍然有问题,可以核对两点:

  • 父级域名Cookie的SameSite属性:如果设置为Strict可能会阻止跨子域名发送,调整为Lax即可;如果是跨站点场景需要设置为None,同时必须开启Secure属性
  • CORS配置的Access-Control-Allow-Origin不能为通配符*,必须明确指定业务的请求源域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:00