我正在通过谷歌标签管理器中的标签加载第三方js文件/脚本。
这个脚本需要从它自己的域设置cookie,但是所有cookie都被设置为主机域的第一方,这意味着它们不会被传输到服务器。
我还在开发第三方脚本,因此可以直接访问该脚本,目前该脚本中用于编写cookie的代码是基于:
const host = (window && window.location && window.location.hostname) || '';
const parts = host.split('.');
const COOKIE_DOMAIN = parts.length > 1 ? `;domain=.${parts.slice(-2).join('.')}` : '';我想这可能会从源头上抢到饼干,但会把它们从主机上放下来。
我试图将COOKIE_DOMAIN更改并硬编码到我的服务器地址,但这似乎不起作用(没有设置cookie)。
编辑:从标题中删除对标记管理器的引用,因为它不太相关。
更新:因此,当我从第三方服务器加载脚本标记时,它基本上变成了第一方--这使得从原始域设置cookie变得非常困难。
发布于 2018-06-05 15:05:06
在页面中运行的JavaScript无法为不同的域设置cookie。document.cookie引用当前页面的cookies。
如果要为不同的域设置cookie,则必须使用headers (例如,当远程域为.js文件提供服务时)。
https://stackoverflow.com/questions/50701519
复制相似问题