Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Cookie复制到另一个域_Javascript_Iframe_Cookies - Fatal编程技术网

Javascript 将Cookie复制到另一个域

Javascript 将Cookie复制到另一个域,javascript,iframe,cookies,Javascript,Iframe,Cookies,我在example.com上有用户首选项(颜色、区域设置),我想将其迁移到example2.com 我想知道是否可以使用AJAX或隐藏的iFrame将cookie信息从example.com传递到example2.com,然后再在example2.com上设置另一个具有相同信息的cookie 我知道我可以通过URL字符串和重定向轻松做到这一点,但如果可能的话,我希望在后台实现这一点——不需要重定向——并且需要在主要浏览器上工作(IE6+、FF1.5+、Safari、Opera) 关键是,此coo

我在example.com上有用户首选项(颜色、区域设置),我想将其迁移到example2.com

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

我知道我可以通过URL字符串和重定向轻松做到这一点,但如果可能的话,我希望在后台实现这一点——不需要重定向——并且需要在主要浏览器上工作(IE6+、FF1.5+、Safari、Opera)


关键是,此cookie信息不安全,因此没有风险。

这取决于浏览器的初始设置,如果浏览器配置为拒绝第三方cookie,那么您就倒霉了


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

这取决于浏览器的初始设置,如果浏览器配置为拒绝第三方cookie,那么您就倒霉了


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

在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' );

在example.com上设置一个路径,该路径生成包含传入cookies的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' );

您需要发出服务器到服务器的XMLHTTP请求,并让第二台服务器重新创建cookie。您不能“传递”它们。

您需要发出服务器到服务器的XMLHTTP请求,并让第二台服务器重新创建cookie。您不能“传递”它们。

您是否考虑过使用Flash Cookie来存储这些首选项?所有主要浏览器的工作都包括chrome


您是否考虑过使用Flash Cookie来存储这些首选项?所有主要浏览器的工作都包括chrome


谢谢,对此仍有点困惑——cookie值随1x1请求一起发送(example2.com/1x1.gif?setting1=this&setting2=this)1x1.gif实际上加载了一些脚本,这些脚本设置了源自example2.com的cookie——浏览器会允许吗?如果配置为允许第三方cookie,它们可能会这样做。大多数是默认的(尽管IE需要p3p策略)。脚本不返回脚本,它返回正确的二进制GIF,但也为自己的cookie添加cookie头。谢谢,仍然对此有点混淆——cookie值随1x1请求一起发送(example2.com/1x1.GIF?setting1=this&setting2=this)实际上,1x1.gif加载了一些脚本,这些脚本设置了一个源于example2.com的cookie——浏览器会允许这样做吗?如果浏览器配置为允许第三方cookie,它们可能会这样做。大多数是默认的(尽管IE需要p3p策略)。脚本不返回脚本,它返回正确的二进制GIF,但也为自己的cookie添加cookie头。