为与 javascript 不同的域设置 cookie

Posted

技术标签:

【中文标题】为与 javascript 不同的域设置 cookie【英文标题】:Setting cookie for different domain from javascript 【发布时间】:2015-09-13 11:49:30 【问题描述】:

我正在尝试将 cookie 设置为与 js 文件的 src 相同的域。

场景: 在 www.xyz.com html 中,我已经包含了来自 qwe.com 的 js 文件,如下所示

<script type="application/javascript" src="http://qwe.com/b.js"></script>

从这个 b.js,我想创建域设置为 .qwe.com 的 cookie。我正在使用以下功能设置 cookie

function createCookie(name, value, days) 
    if (days) 
      var date = new Date();
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      var expires = "; expires=" + date.toGMTString();
     else 
      var expires = "";
    
    document.cookie = name+"="+value+expires+";domain=.qwe.com"+"; path=/;";
  

使用上面的代码我无法设置 cookie。 示例:www.flipkart.com-> 在开发者控制台的资源选项卡中检查 cookie-> .scorecardresearch.com 和 .doubleclick.net 可以设置 cookie

我也想这样做。有人可以为此分享解决方案吗?真正的工作解决方案。我通过谷歌搜索尝试了多种解决方案。没用。

【问题讨论】:

【参考方案1】:

客户端 JavaScript 只能为网页所在的域设置 cookie。

您引用的示例使用 HTTP headers to set cookies,而不是 JavaScript。

【讨论】:

嘿昆汀,感谢您的参考。我是一个非常早期的初学者。你能解释一下吗?如何使用 HTTP 标头设置 cookie 来完成它?我检查了关于 HTTP 标头 link 的另一个答案。似乎无法用它来完成。请帮忙澄清一下。 如何设置 HTTP 标头取决于您在服务器上使用的服务器端语言。该链接是关于为不同域设置标头的,您不会尝试这样做:脚本来自 example.com,cookie 为 example.com 设置。 知道了!感谢您的意见!

以上是关于为与 javascript 不同的域设置 cookie的主要内容,如果未能解决你的问题,请参考以下文章

将 automake 安装文件名设置为与原始文件名不同

将上游分支设置为与本地名称不同的远程分支

javascript 跨域设置 cookie

如何将 datagrip 设置为与主机数据库相同的时区

JavaScript跨域

如何配置 .net 核心以将身份验证 cookie 发送到不同的域