【发布时间】:2018-03-09 12:57:44
【问题描述】:
从http://subdomain-a.my-site.com:3000,我向http://subdomain-b.my-site.com 进行跨域XHR (ajax) 调用。
我的 jQuery 客户端有以下设置(用于测试目的):
-
crossDomain = true-> 用于请求其他域 -
withCredentials = true-> 用于接受来自 ajax 调用的Set-Cookie标头
Nginx 服务器已配置为在响应中添加以下标头:
Access-Control-Allow-Origin: http://subdomain-a.my-site.com:3000
Access-Control-Allow-Credentials: true
HTTP 响应还包含一些带有以下域的 Set-Cookie 标头:
- .my-site.com
- 没有精确的域(期望端点域:subdomain-b.my-site.com)
观察:
- Chrome 的控制台未显示此配置存在 CORS 问题。
- 收到HTTP Response后,我去
chrome://settings/content/cookies,subdomain-a或subdomain-b的cookie设置为零。
问题 => 我是在尝试做一些可能的事情还是不可能的事情?如果可能的话,我是否错过了一些配置?
约束: 我知道有另一种解决方案,就像 Google Analytics 设置 cookie 一样(它调用服务,然后从页面中的嵌入式 JS 设置 cookie),但是我们有很多前端应用程序并且无法更新它们来完成这个技巧。我们的解决方案是使用 nginx。
【问题讨论】:
-
无法跨子域设置 cookie。页面只能在其自己的域或父级中设置 cookie。
-
显示浏览器网络工具中的
Set-Cookie响应是什么
标签: jquery http nginx cookies cross-domain