5

我正在使用 jsonP 从 cookie 发送数据,从域 A 到域 B。它运行良好,但我的问题不在这里。我才意识到,如果我只script在我的域 B 上放置一个指向我的域 A 的标记,那么我的域 A 的所有 cookie 都设置在我的域 B 上。

示例:我将此标签放在我的域 B 上:

<script src="http://mydomainA.com/"></script>

只有这样,我的域 A 的所有 cookie 都设置在我的域 B 上。我的问题是,这正常吗?我认为 cookie 需要一些技巧才能跨域,但我认为这并不容易。

抱歉我的英语不好,如果我的问题很愚蠢或者以前有人问过,请道歉。

提前致谢。

4

1 回答 1

5

Cookie 只是 HTTP 请求中的标头。当浏览器请求

GET /foo
Host: a.com

它接收一个 HTML 文档,其中包含<script>托管在另一个域上的标签。所以它触发了另一个请求:

GET /script.js
Host: b.com
Cookie: foobarbaz

b.com如果有的话,它当然可以为 domain 附加 cookie 。这意味着浏览器最后一次联系b.com时,HTTP 响应包含一个像

...
Set-Cookie: foobarbaz
...

因此对同一域的后续请求将保持会话。当浏览器请求另一个资源时,a.com例如

GET /bar.jpeg
Host: a.com

foobarbaz设置的 cookieb.com 不会与请求一起发送,因此脚本a.com无法访问b.com.

于 2012-12-11T11:00:54.547 回答