我在 http ://localhost/mySite/Page1.aspx上有一个网页,其中包含一个带有src https :// localhost / mySite / Page2的iframe。 ASPX。
在iframe页面(Page2.aspx)中,我使用JavaScript设置cookie。我如何在父页面上读取该cookie(Page1.aspx)???看起来Page1看不到Page2设置的cookie。
要设置/读取cookie,我使用jQuery.Cookie插件:
$.cookie('myKey', JSON.stringify(data), { expires: 1, path: '/', domain: 'localhost' });
顺便说一句,如果有人能让我知道如何在这样的方案中在客户端上传输数据,我很高兴知道它(服务器池不是我的解决方案)。
我发现它适用于sessionStorage / localStorage,但它只适用于IE :(
答案 0 :(得分:1)
根据问题的评论:
该问题源于同源政策(SOP),该政策禁止不同来源的内容相互干扰。 不同来源不仅基于域的比较,还基于使用的协议,因为它是clearly shown on this Wikipedia page。因此,http://localhost
与https://localhost
不同。
为了使这两个来源能够沟通:
window.postMessage()
事件还有免费的预构建解决方案(我没有测试过),例如Ternarylabs' Porthole或EasyXDM。
干杯!
答案 1 :(得分:0)
我不认为这是完全正确的。安全属性未设置为true的cookie将在域中共享,而不管使用的协议如何。
真正的问题是jquery忽略了这个方面,可以通过secure=true
问题使用$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
将{{1}}指定为JSON属性来更改。