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

CloudFront跨域请求丢失Cookie问题排查咨询

问题排查与解决建议

1. Cookie的Domain属性配置错误

登录https://subdomain1.domain.com时,服务器返回的Set-Cookie头必须将Domain设置为.domain.com(注意前置的点),这样所有子域名(包括subdomain2)才能共享该Cookie。如果Domain设为subdomain1.domain.com,浏览器只会在访问subdomain1时携带Cookie,跨到subdomain2时不会自动发送。

检查登录接口的响应头,确认Set-Cookie格式类似:

Set-Cookie: sessionId=xxx; Domain=.domain.com; Path=/; Secure; HttpOnly

2. Cookie的SameSite属性限制

如果Cookie的SameSite属性设置为Strict或Lax,浏览器在跨子域名的请求中不会携带该Cookie。必须将其设置为SameSite=None,同时搭配Secure属性(你的场景是HTTPS,满足SameSite=None的强制要求)。

正确的Set-Cookie应包含:

SameSite=None; Secure

3. CloudFront的CORS头需覆盖所有请求类型

确保CloudFront不仅在OPTIONS预检请求中返回CORS头,POST请求的响应(哪怕是404状态)也需要携带以下头:

  • Access-Control-Allow-Origin: https://subdomain1.domain.com
  • Access-Control-Allow-Credentials: true

如果CloudFront仅针对OPTIONS请求配置了CORS规则,POST请求没有这些头,浏览器可能会拦截Cookie的发送,即使Cookie本身配置正确。

4. 移除Ajax的冗余配置项

在jQuery中,当设置xhrFields.withCredentials: true时,crossDomain: true属于冗余配置(跨域请求时该属性默认会被设为true),虽不会直接导致Cookie不携带,但可以尝试移除该配置,避免潜在冲突。

修改后的Ajax配置:

xhrFields: {
  withCredentials: true
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:57:39