重定向后是否可以找到跨域iframe的新网址?

时间:2009-05-02 19:09:58

标签: iframe cross-domain

我正在尝试在我网站的另一个子域上发布应用程序的登录表单。这是我没有源代码访问权限的第三方应用程序。

我知道由于same origin policy,您无法访问跨域iframe的大多数功能。但是,我需要访问的是在iframe中重定向到(通过JavaScript)的URL。它有一个我想要传递的会话令牌。

这似乎是可以安全到允许的东西,但我还没有办法做到这一点。我正在使用jQuery,我已经尝试了$('iframe').contents(),但我似乎对该对象没有任何权限。我还检查了$('iframe').attr('src'),但它仍然是重定向前的网址。还有另一种方式吗?

2 个答案:

答案 0 :(得分:11)

不,您无法访问iframe中的任何属性。您只能访问外部定位和样式属性。

这就是框架如此痛苦的原因。如果我不在乎他们内心做了什么,我通常只会使用它们。

您是否可以进行服务器端身份验证和令牌传递?您可以不在服务器上执行此操作,而不是让客户端进行身份验证吗?您可能需要做一些额外的工作来创建HTTP请求并解析响应,但是您可以避免任何iframe问题。

底线是iframe可能不是最好的依赖(特别是在涉及跨浏览器功能时),用于身份验证等重要事项。

答案 1 :(得分:2)

试试这个example(方法2),其中作者在第一个内部设置另一个iframe,在原始域中加载页面。 允许内部页面在外部父级上调用javascript,因为它们是在同一个域中加载的。 只需使用适当的参数加载内部页面,这些参数可以传递给父级。