【问题标题】:Cookie is being seting to only one domainname but the website has multiple domain nameCookie 仅设置为一个域名,但网站有多个域名
【发布时间】:2012-08-25 21:59:30
【问题描述】:

我有一个有两个域名的网站,它们显示两个域名的相同内容,并且对于子域也是正确的,但问题是当我为该网站设置在其子域中使用的 cookie 时网站。

Cookie 被设置为只有一个域名而不是两个域名?? 我没有得到什么是问题帮助...

提前谢谢你

【问题讨论】:

  • 你不能为 2 个不同的域设置 cookie
  • 想象一下能够在您的域中创建一个 cookie 并在 facebook 中使用它......男孩,这不是什么! ;-)
  • @Raidenace :请正确阅读问题我说的是同一个网站不是两个不同的网站,但是那个网站有多个域名,并且这个域名共享相同的文件夹和页面,如果我们设置 cookie它应该对两个域名都有效,因为我们在登录页面中设置了两个都使用的 cookie..

标签: php javascript cookies setcookie


【解决方案1】:

Cookie 并非设计为可供其他域访问 但总有一种解决方法;) 有方法可以实现这个

  1. 包括 2 个来自不同域的隐藏 iframe,以设置具有相同值的 cookie。

    例如。 http://productforums.google.com/forum/#!topic/websiteoptimizer/aD4rZSoaKNo

  2. 使用主从域配置

    例子:

    https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite

    http://www.codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm

【讨论】:

  • 这是一个具有两个不同名称的网站,例如“example.com”和“exam.com”,它们都使用相同的页面,所以我在登录页面中设置了 cookie,但设置适用于“example .com”而不是“exam.com”
  • 我已经用一些参考资料编辑了我的答案,请试一试
  • 但是两个域名共享相同的文件夹和相同的页面以及子域,此时如果对内容进行更改,它会在两个域名中生效,但这对于曲奇饼。为什么??
  • 它不适用于 cookie,因为浏览器将提供具有相同页面域的 cookie。
  • 到你的代码工作创建一个页面说foo.php来设置cookie并获取cookie现在包括2个iframe不同的域来源(domainone.com/foo.phpdomaintwo.com/foo.php)到你的同一页面并传递为两个 iframe 创建 cookie 的编码参数
【解决方案2】:

您必须知道,只能为来自该域(包括其子域)的域设置 cookie。如果您的域不共享一个共同的超级域,则需要分别为每个域设置每个 cookie。

您可以使用在每个域上为您设置 cookie 的脚本来执行此操作。但请确保对这些脚本的请求进行身份验证,以便只有您可以设置 cookie。

参考link

【讨论】:

  • 两个域名共享相同的文件夹和相同的页面以及子域,此时如果对内容进行更改,它将在两个域名中生效,但这对于 cookie 不一样.为什么??
  • Cookie 与会话不同,它们存储在客户端。因此,每当您为一个域创建 cookie 时,它​​永远不会被其他域共享。虽然它共享相同的文件夹和相同的页面,但它不能共享 cookie 变量。解决方案是编写一个脚本来设置 cookie 并使用一些身份验证机制。
  • 我不想在两者之间共享 cookie,我想创建,但它只是为一个域名而不是另一个名称创建,因为它也应该为另一个创建它使用我在其中创建 cookie 的同一登录页面..
  • 你可以使用一个解决方案,你首先retrieve siteURL,然后相应地使用if-else为不同的域名创建cookie。当您必须验证 cookiename 时,再次使用 if-else 检索 siteURL,并执行您想要的任何操作。
【解决方案3】:

您不能在两个不同的域之间共享 cookie,即使您同时拥有这两个域。


SO 有一些关于跨域 cookie 和其他可能解决方案的帖子:

Cross domain cookies

Cross-Domain Cookies

【讨论】:

    【解决方案4】:

    您可以在一个公共域上设置一个 API 来为所有想要访问所述 cookie 信息的域设置 cookie。公共域 cookie 将具有表示域等的名称空间键,并将执行所有 cookie 读取/写入。使用 XHR 访问带有您希望放入公共 cookie 中的参数的公共域。请记住,Safari 默认禁用 3rd 方 cookie。

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 1970-01-01
      • 2013-07-08
      • 2011-01-28
      • 2011-03-12
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多