我有一个问题,我有一个框架集,包括从一个域加载的父框架和来自不同域的包含框架.包含的域还在加载框架集之前设置cookie.但是,由于大多数浏览器强制实施的“相同orgin”策略,如果包含的框架不是来自与父母相同的域,则不会传递cookie.
不幸的是,我无法控制父框架(或其网址),并且包含框架的网址实际上是静态的.因此,将信息传递到包含的网站的唯一方法是通过cookie.
我提出的唯一解决方案是在父框架中重新加载包含的域,但这首先否定了使用框架的一些价值.
有没有人有更好的解决这个问题?
解决方法
有几种绕过
Same Origin Policy的方法可以防止你的iframe互相说话.如果您控制两个服务器,那么您可以使用
Flash’s crossdomain.xml file.如果您不控制其中一个服务器或者您想使用JavaScript,那么您将被迫使用“跨域代理”,例如
java或
python或
php.
Cross-Site XHR是另一种选择,但并非所有浏览器都支持它.