代码之家  ›  专栏  ›  技术社区  ›  dendog

第三方脚本设置第一方cookies

  •  0
  • dendog  · 技术社区  · 6 年前

    我正在通过google标签管理器中的标签加载第三方js文件/脚本。

    此脚本需要从其自己的域设置cookies,但是所有cookies都被设置为来自主机域的第1方,这意味着它们不会被传输到服务器。

    我也在开发第三方脚本,因此可以直接访问此脚本,当前该脚本中用于编写cookies的代码基于:

    const host = (window && window.location && window.location.hostname) || '';
    const parts = host.split('.');
    const COOKIE_DOMAIN = parts.length > 1 ? `;domain=.${parts.slice(-2).join('.')}` : '';
    

    我想这可能会从原点抓取饼干,但从主机设置。

    我试图将cookie_域更改并硬编码到我的服务器地址,但这似乎不起作用(即没有设置cookie)。

    编辑:从标题中删除对标记管理器的引用,因为它不太相关。

    更新:因此,当我从第三方服务器加载脚本标记时,它基本上变成了第一方,这使得从原始域设置cookie变得很困难。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Quentin    6 年前

    在页面中运行的javascript无法为不同的域设置cookie。 document.cookie 指当前页的cookie。

    如果要为不同的域设置cookies,则必须使用http头(例如 .js 文件由远程域提供服务)。