我正在研究jsonP,将数据从cookie从域A发送到域B。效果很好,但我的问题不在这里。我只是意识到,如果我只在我的域 B 上放置一个指向我的域 A 的 script
标签,那么我的域 A 的所有 cookie 都设置在我的域 B 上。
示例:我把这个标签放在我的域名 B 上:
<script src="http://mydomainA.com/"></script>
只有这样,我的域 A 的所有 cookie 都设置在我的域 B 上。我的问题是,这正常吗?我认为cookie需要一些黑客才能跨域,但我认为这并不容易。
对不起,我的英语不好,如果我的问题很愚蠢或以前问过,我深表歉意。
提前谢谢。
Cookie 只是 HTTP 请求中的标头。当浏览器请求时
GET /foo
Host: a.com
它接收一个 HTML 文档,其中包含托管在另一个域上的<script>
标记。所以它会触发另一个请求:
GET /script.js
Host: b.com
Cookie: foobarbaz
它当然可以为域b.com
附加cookie,如果有的话。这意味着浏览器最后一次联系b.com
时,HTTP响应包含一个标头,例如
...
Set-Cookie: foobarbaz
...
因此,对同一域的后续请求将维护会话。当浏览器请求其他资源a.com
例如
GET /bar.jpeg
Host: a.com
b.com
设置的 cookie foobarbaz
不会随请求一起发送,因此 a.com
上的脚本无法访问来自 b.com
的数据。