2010-03-09 78 views
0

有人可以帮我这个 - 我有2个应用程序AAA和BBB。 AAA的主页包含一个显示应用程序BBB的iFrame。当我登录到AAA时,应使用相同的登录信息登录到BBB(单点登录)和AAA主页的页面加载中,BBB的主页也应该加载到iFrame中。 我试着用javascript来访问BBB登录页面的表单元素来输入登录数据并提交。但浏览器给我一个'访问被拒绝'的错误。我做了一些小小的阅读,发现浏览器不允许跨域通信。 有人能告诉我如何实现这一目标?从父母到孩子的iframe跨域访问

回答

0

您可以使用JSONP解决跨域限制。有一个很好的解释over here

我已经多次使用JSONP跨域使用JavaScript。

2

好吧,我只是扩展了我的孩子到父母的跨域库来支持父母对孩子的交流。它要求你可以从小孩到父母沟通。

我正在做的孩子对父母的沟通使用父母托管的跨域文件(我将调用xdParent),该文件加载在孩子内部的iframe中。此页面(xdParent)然后调用parent.parent.whateverItWantsTo

所以沟通到较低的iframe,我这样做:

  1. 儿童必须承载自己的跨域文件(我会打电话给这xdChild)
  2. 当孩子iframe中加载,加载在iframe
  3. 然后xdParent与母公司注册其窗口对象(即parent.parent.someReservedVariable =窗口xdParent;)
  4. 当父母想做点事为了孩子,父母使用someReservedVariable来加载xdCh xdParent
  5. xdChild内ILD然后做一些事情与孩子页面(即parent.parent.doWhateverItWantsTo)

希望这是可以理解的。不幸的是,我不想花时间为你创建一个简明的例子,但是如果你有任何问题,请告诉我。

+0

这是这里最好的答案!我花了3天的时间试图让一些东西去工作,所有的死胡同,然后我发现了这个来自你和该死的,它像一个冠军。荣誉,你救了我从放弃! – MikeSchinkel 2012-04-28 01:43:05

+0

这不再有效。我会为你解决其他问题。天才解决方案! – Jompis 2015-09-10 14:46:54

1

不要这样做。

这不是一个好主意。

您在修复时可能会损坏另一个涉及跨域iframe的安全漏洞。