междоменный доступ в iframe от родителя к ребенку - PullRequest
0 голосов
/ 09 марта 2010

Может ли кто-нибудь помочь мне с этим- У меня 2 приложения AAA и BBB. Домашняя страница AAA содержит iFrame, который отображает приложение BBB. Когда я вхожу в AAA, те же данные должны использоваться для входа в BBB (единый вход) и при загрузке страницы домашней страницы AAA домашняя страница BBB также должна быть загружена в iFrame. Я пытался использовать javascript для доступа к элементам формы на странице входа BBB, чтобы ввести данные для входа и отправить. Но браузер выдает ошибку «Отказано в доступе». Я немного почитал и узнал, что браузер не разрешает общение между доменами. Может кто-нибудь сказать мне, как я могу добиться этого?

Ответы [ 4 ]

2 голосов
/ 09 декабря 2010

Хорошо, я только что расширил свою междоменную библиотеку от ребенка к родителю для поддержки связи между родителями. Это требует, чтобы вы могли общаться от ребенка к родителю.

Дочернее-родительское общение, которое я делаю, использует междоменный файл, размещенный родителем (который я назову xdParent), который загружается в iframe внутри дочернего элемента. Эта страница (xdParent) затем вызывает parent.parent.whwhatItWantsTo

Итак, чтобы общаться с нижним iframe, я делаю это:

  1. Ребенок должен разместить свой собственный междоменный файл (я назову это xdChild)
  2. при загрузке дочернего iframe загружает xdParent в iframe
  3. xdParent затем регистрирует свой объект окна у родителя (то есть parent.parent.someReservedVariable = window;)
  4. когда parent хочет что-то сделать с потомком, parent использует someReservedVariable для загрузки xdChild внутри xdParent
  5. xdChild затем что-то делает с дочерней страницей (то есть parent.parent.doWhwhatItWantsTo)

Надеюсь, это понятно. К сожалению для вас, я не хочу тратить время на создание краткого примера для вас, но дайте мне знать, если у вас есть какие-либо вопросы.

1 голос
/ 09 декабря 2010

Не делай этого.

Это просто не очень хорошая идея.

Вы можете быть сломаны, когда исправят другую уязвимость безопасности, связанную с междоменными фреймами.

1 голос
/ 09 марта 2010

Я думаю, что мой ответ здесь может быть полезным.

HTML5 поддерживает обмен сообщениями , но HTML5 имеет только ограниченную поддержку браузера прямо сейчас.

0 голосов
/ 13 марта 2010

Вы можете обойти междоменные ограничения, используя JSONP. Вот хорошее объяснение здесь .

Я много раз использовал JSONP для использования JavaScript в разных доменах.

...