将cookie复制到另一个域

时间:2009-05-13 19:22:42

标签: javascript iframe cookies

我在example.com上有用户偏好(颜色,区域设置),我想迁移到example2.com

我想知道我是否可以使用AJAX或隐藏的iFrame将来自example.com的cookie信息传递给example2.com,然后example2.com将在example2.com上设置另一个具有相同信息的cookie。

我知道我可以通过URL字符串和重定向轻松完成此操作,但我希望在后台尽可能实现此目的 - 无重定向 - 并且需要在主要浏览器上工作(IE6 +,FF1.5 + ,Safari,Opera)

点是这个cookie信息不安全所以那里没有风险。

4 个答案:

答案 0 :(得分:2)

这取决于初学者的浏览器设置,如果浏览器配置为拒绝第三方Cookie,则表示运气不佳。

假设您控制example.com,并且cookie不是仅HTTP的cookie,您可以添加脚本。该脚本将写出指向example2.com上的脚本的img标记,其中document.cookies作为参数。在脚本中写出1x1透明gif并将cookie从示例附加到响应,解析参数字符串以提取cookie名称/值对。

答案 1 :(得分:1)

在example.com上设置路径,生成包含传入的cookie的javascript文件。让我们说它是example.com/get_cookie.js

然后你可以从example2.com到example.com/get_cookie.js进行ajax调用以获取这些cookie,并将它们保存在example2.com下。

由于它是跨域的,你不能使用XHR(XmlHttpRequest),而是将get_cookie.js作为javascript节点附加,并且javascript文件必须调用回调来传递数据。

所以get_cookie.js看起来像是:

return_data( 'here is my example.com cookie info' );

答案 2 :(得分:0)

您需要制作服务器到服务器的XMLHTTP请求,并让第二台服务器重新创建Cookie。你无法“传递”它们。

答案 3 :(得分:0)

您是否考虑使用Flash Cookie存储这些偏好设置?所有主流浏览器的工作都包括chrome。

http://www.ghacks.net/2007/05/04/flash-cookies-explained/