7

如何设置第三方 cookie。我有要求设置 cookie,并且 cookie 将在访问的网站中启用,就像我在访问 cde.com 或 def.com 或 ghi.com 时在 abc.com 中设置了 cookie 一样,所以设置的 cookie 将在所有网站上获取。如何在 javascript 中获取所有域上的 cookie。

4

3 回答 3

5

如果您将使用 abc.xyz.com、cde.xyz.com、def.xyz.com(谷歌获取子域 cookie)而不是 abc.com、cde.com、def.com,则可以直接共享 cookie . 也许可以像这样设置您的网站并且仍然满足您的要求。

否则,如果所有这些网站不能位于同一域的子域中,那么您可能会让其中一个充当中央 cookie 服务器,当用户在其他域上时,您可以使用 JSONP 将它们定向到您的 cookie 上的某个脚本将向您发送他们的 id 或其他内容并使您的脚本处理 AJAX 请求的域将其域 cookie 设置为相同的值。例子:

  1. 用户访问 def.com
  2. def.com 上的 JavaScript 代码向 abc.com 发出 JSONP 请求
  3. 如果尚未设置,abc.com 将设置 cookie
  4. abc.com 返回 cookie 值作为对 def.com 上脚本的响应
  5. def.com 上的脚本将其本地 def.com cookie 设置为相同的值

现在您的服务器可以协调他们的统计数据等。

所有这一切当然只有在所有网站相互合作的情况下才有可能,即。您的网站也不能与您无法控制的其他网站的 cookie 混为一谈。

更新:

另请参阅Alex Sexton 的Breaking The Cross Domain Barrier演讲,以获取一些灵感和代码示例。

更新:

如果您决定使用类似于上述方法的方法,请确保您了解潜在的安全问题,例如跨站点请求伪造攻击的可能性。在 Stack Overflow 中搜索 JSONP 安全性,以找到有关如何使其安全的更多信息。请记住,上面的解释是对您需要理解的一些复杂过程的简化。你被警告了。

于 2012-09-20T14:05:50.963 回答
2

您只能访问您的域 cookie。

于 2012-09-20T13:58:05.030 回答
2

无法分配多域 cookie。

于 2012-09-20T13:59:02.783 回答