【发布时间】:2016-11-02 20:41:12
【问题描述】:
我很难协调来自 StackOverflow 和其他来源的关于跨子域调用使用的一些冲突信息。考虑这两个共享同一个域的独立站点:
- 站点 #1:
www.myDomain.com - 站点 #2:
sub.myDomain.com
要求:
- 站点#1 必须能够通过
sub.myDomain.com/handler.ashx对站点#2 执行AJAX 调用。 - 站点 #1 和站点 #2 必须能够读取彼此的 cookie。
这些要求让我想到了以下问题:
-
位于 sub.myDomain.com/handler.ashx 的处理程序代码是否需要更改其响应标头以允许 CORS? 我知道我可以编写这样的调用:
resp.Headers.Add("Access-Control-Allow-Origin","*");...但是根据我的阅读,这会将处理程序暴露给 所有 域。我只想将呼叫限制为来自
*.myDomain.com的呼叫。如果我根本不包含 CORS 标头怎么办?默认行为是什么? -
站点#1 和/或站点#2 是否需要调整 HttpCookie 的 Domain 属性才能让两个站点读取彼此的 cookie?
如果我根本不接触域属性怎么办?默认行为是什么?一些论坛回复表明 cookie 范围将仅限于子域,而其他人则建议整个域都在范围内(这是我想要的),在这种情况下,我不需要采取任何行动。
【问题讨论】: