我有一个问题,我有一个框架集,包含从一个域加载的父框架和来自不同域的包含框架。包含的域还在加载框架集之前设置cookie。但是,由于大多数浏览器强制实施的“相同orgin”策略,如果包含的框架不是来自与父母相同的域,则不会传递Cookie。
不幸的是,我无法控制父框架(或其网址),并且所包含框架的网址实际上是静态的。因此,将信息传递到包含网站的唯一方法是通过cookie。
我提出的唯一解决方案是在父框架中重新加载包含的域,但这首先否定了使用框架的一些价值。
有没有人能更好地解决这个问题?
答案 0 :(得分:2)
有两种方法绕过Same Origin Policy,阻止你的iframe互相交谈。如果您控制两台服务器,则可以使用Flash's crossdomain.xml file。如果您不控制其中一个服务器或者您想使用JavaScript,那么您将被迫使用“跨域代理”,例如java或python或{ {3}}
php是另一种选择,但并非所有浏览器都支持它。
答案 1 :(得分:1)
有很多方法可以做到这一点。这是我用过的两个:
答案 2 :(得分:1)
在使用postMessage的HTML 5中,还有一种正确的方法。 见这里:http://ajaxian.com/archives/cross-window-messaging-with-html-5-postmessage
答案 3 :(得分:1)