Cross protocol cookie iFrame
Cross protocol cookie iFrame
我在http://localhost/mySite/Page1.aspx上有一个网页,其中包含一个带有srchttps://localhost/mySite/Page2.aspx的iframe。
在iframe页面(Page2.aspx)中,我用JavaScript设置了cookie。我怎样才能读取父页面(Page1.aspx)上的cookie???看起来Page1没有看到Page2设置的cookie。
为了设置/读取Cookie,我使用jQuery.Cookie插件:
$.cookie('myKey', JSON.stringify(data), { expires: 1, path: '/', domain: 'localhost' });
顺便说一句,如果有人能告诉我如何在这种方案中在客户端上传输数据,我会很高兴知道这一点(服务器池对我来说不是一个解决方案)。我发现它适用于sessionStorage/localStorage,但它只适用于IE:(
基于问题的评论:
这个问题是由于同源政策(SOP),该政策禁止不同来源的内容相互干扰不同的来源不仅基于域的比较,还基于所使用的协议,正如维基百科页面上清楚显示的那样。因此,http://localhost
与https://localhost
是不同的起源。
为了使这两个来源能够通信:
- 这个链接完美地描述了常用的技术(iframe代理和URL轮询),并在其"物理定律:你可以用iframe做什么"一段中清晰地总结了SOP的规则
- 另一篇文献丰富的文章(链接自上面的文章)将常用的技术融合到一个优雅的解决方案中
- 如果目标浏览器都是HTML5兼容的(即最新的和标准的浏览器,即不是大多数MSIE版本),该标准引入了一个新的具有
window.postMessage()
和onMessage
事件的帧间通信系统
还有免费的预构建解决方案(我没有测试),比如Ternarylabs的Porthole或EasyXDM。
干杯!
我不认为这是完全正确的。安全属性未设置为true的cookie将在域中共享,而与使用的协议无关。
对您来说,真正的问题是jquery忽略了这一方面,可以通过使用$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
将secure=true
指定为JSON属性来更改这一方面。
- 防止Iframe窗体在新窗口中打开
- 将样式表插入iframe
- Cross protocol cookie iFrame
- 使用 Iframe 问题设置跨域 Cookie
- 是否可以在没有 Cookie 数据的情况下创建 iframe
- Cookie 设置为 iframe javascript 中的父窗口
- JavaScript set cookie via iFrame via CORS via PHP Allow Head
- 使用没有会话或 Cookie 数据的 iFrame(无痕)
- 如何在javascript中读取显示在iframe中的外部网站的cookie
- 无法通过iframe添加cookie
- 如何在 iframe 中设置 cookie?Facebook Cookie 的工作原理
- Windows应用商店应用程序和iFrame cookie
- 删除按Iframe设置的已有Cookie
- 在iframe内执行alert(document.cookie)
- Read IFrame cookie
- 通过文档.从独立域的iframe内将Cookie转换为PHP
- 无法访问在iframe中加载的自己域上的httponly标记的cookie
- 如何在设置iframe时将cookie附加到请求中.SRC(使用jquery)
- Cookie在安卓Webview的iframe中不起作用
- Iframe不能读取或设置cookie