我放了一块饼干:
<script>
document.cookie="cid1={{utm_campaign}}; path=/;"
</script>{{}是一个宏,是Google-Tag-Manager语法,请忽略它.
每当有人使用如下标记在example.com/?utm_medium=test&utm_source=bla&utm_campaign=foo.上登陆example.com时,就会触发上面的脚本:我测试了它,并且确信,当我使用这些参数登陆主页时,cookie就会被设置。
但是访问者可以移动到子域dogs.example.com。当我查看控制台时,cookie cid1已经不在了。
除了将路径设置为"/“之外,在创建cookie时是否可以更改设置,以便cookie跨越到子域?
发布于 2015-04-23 13:00:56
域应该类似于.example.com,因此*.example.com可以访问它。
var website_host = window.location.hostname.replace('www.', '');
document.cookie = "cid1={{utm_campaign}}; path=/;domain=."+website_host
// to be something like this"cid1={{utm_campaign}}; path=/;domain=.example.com"发布于 2015-04-23 13:04:52
您缺少了这个域参数。将域设置为.example.com,使其可从.example.com中的所有页面访问。
<script>
document.cookie="cid1={{utm_campaign}}; path=/; domain=.example.com"
</script>复制此处:setting cross-subdomain cookie with javascript
;domain=domain (例如,'example.com‘、'.example.com’(包括所有子域)、‘subdomain.example.com’(如果没有指定),默认为当前文档位置的主机部分。
完整文档:https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie
https://stackoverflow.com/questions/29824115
复制相似问题