0

可能重复:
跨域 cookie

我需要一个可跨多个域使用的 cookie。我知道你不能直接这样做,但我可以这样做:

  • 用户访问域1
  • domain1 向 domain2 发送 curl 帖子
  • domain2 检查是否已经设置了名为“someCookie”的 cookie。如果是,则返回一些数据以告诉 domain1 它已设置,如果不是,则返回一些数据以说明其未设置。
  • 现在 domain1 知道是否设置了 domain2 的 cookie

所以基本上 domain2 总是处理 cookie 并且只是向其他域报告它是否设置。我还需要通过在 domain2 上调用设置 cookie 的脚本来从 domain1 设置它。

我不知道这是否可能,但请告诉我

4

3 回答 3

4

someCookie 是 CLIENT 上的数据存储而不是服务器上的数据......所以只要客户端没有加载到浏览器窗口或来自 domain2 的 iframe 页面中,就不会有 cookie。请记住,某些浏览器会阻止从 iframe 创建 cookie。

于 2012-10-18T11:12:52.373 回答
3

您建议的解决方案的问题是cookies保存在客户端。因此,domain1 不能简单地联系 domain2 来询问 cookie 是否存在。

你可以做的是有一个 iframe 到 domain2。Domain2 读取 cookie 并向 domain1 发送一些通知,告诉 domain1 客户端 X 刚刚访问了 domain2 并且有或没有设置 cookie。然而,这是一个非常老套的解决方案,它不适用于所有浏览器。

将数据从一个域传递到另一个域是一项非常复杂的任务。浏览器对这些东西的支持非常有限,因为这些东西通常用于恶意软件目的(跨站点脚本)。因此,浏览器有意限制这种情况下可能的解决方案。

于 2012-10-18T11:13:31.020 回答
0

Cookie 不能与不同的域共享,但它不是子域,更改它会起作用。

尝试一些类似的东西

http://domain1.com/authenticate?token=tekrjadfjhad&action=auth

并根据您的逻辑验证令牌和操作或其他任何内容。

于 2012-10-18T11:20:21.393 回答