首页 > 解决方案 > 如何迁移cookie域并保留值

问题描述

是否可以从 cookie 迁移域?我有一个跟踪脚本女巫在跟踪脚本的域(服务器端,RoR 后端)上设置了一个 cookie,比如说 mytracking.com。

跟踪脚本本身作为 javascript 集成在域 mycustomer.com 上。

现状是,mycustomer.com 网站上的每位访客现在都有一个域 mytracking.com 的 cookie。

我能否以某种方式将 cookie 域从 mytracking.com 迁移到 mycustomer.com?

标签: javascriptruby-on-railsrubycookies

解决方案


在您的客户端 JavaScript 中,生成一个唯一 ID。然后iframe使用指向脚本的源mytracking.com和唯一 ID 作为参数创建一个。

var ifrm = document.createElement('iframe');
ifrm.setAttribute('src', 'mytracking.com/storecookie.rb?uuid=<UUID>');
document.body.appendChild(ifrm);

现在storecookie.rb脚本可以访问mytracking.com域上的 cookie 值并将其与您生成的 UUID 一起写入数据库。

现在,在您的客户端 JavaScript 中,您可以使用fetch()另一个脚本,例如mytracking.com/readcookie.rb?uuid=<UUID>从数据库中检索匹配的 cookie 值。使用客户端 JS 中的值,您可以简单地创建一个具有正确域的新 cookie。

不幸的是,这个过程有点复杂,但跨域安全性阻止了为另一个域设置 cookie。


推荐阅读