如何迁移cookie域并保留该值

时间:2018-06-14 11:35:45

标签: javascript ruby-on-rails ruby cookies

以某种方式可以从cookie迁移域吗? 我有一个trackingscript女巫在跟踪脚本(服务器端,RoR后端)的域上设置一个cookie,让我们说mytracking.com。

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

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

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

1 个答案:

答案 0 :(得分:1)

在客户端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。