我正在研究jsonP从cookie发送数据,从域A发送到域B.它运作良好,但我的问题不在这里。我只是意识到,如果我只在我的域B上放置script
标记指向我的域A,则我的域A的所有cookie都在我的域B上设置。
示例:我将此标记放在我的域B上:
<script src="http://mydomainA.com/"></script>
只有这样,我的域A的所有cookie都在我的域B上设置。 我的问题是,这是正常的吗?我认为cookie需要一些黑客来跨域,但我不认为这很容易。
抱歉我的英文不好,如果我的问题很愚蠢,或者之前有人问过,请道歉。
提前致谢。
答案 0 :(得分:4)
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
由foobarbaz
设置的Cookie b.com
将不会与请求一起发送,因此a.com
上的脚本无法访问来自b.com
的数据。