Gautam Raithatha Ответов: 0

Междоменная проблема в iframe


У меня есть сайт, скажем "http://a.mydomain.com". У меня есть веб-почта для моего домена по адресу "http://webmail.mydomain.com".

Я хочу отобразить веб-почту в iframe внутри моего сайта. Я предоставил ссылку на веб-сайте, которая открывает веб-почту в iframe внутри страницы на моем сайте. Оба имеют одинаковые учетные данные для входа. Мне уже удалось автоматически войти в веб-почту, используя учетные данные моего сайта.

Проблема:
Когда iframe загружается на мой сайт, возникает проблема с разрешениями, связанная с кросс-доменом. Таким образом, веб-почта продолжает загружаться... и показывает непрерывный индикатор выполнения.
Консольная ошибка показывает "SecurityError: отказано в разрешении доступа к свойству "xxx" на объекте cross-origin"

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

Я хочу отобразить веб-почту внутри iframe на странице моего сайта. Как мне это сделать? У меня есть контроль на моем сайте "http://a.mydomain.com" но не на "http://webmail.mydomain.com".

Спасибо!

Что я уже пробовал:

Я нашел возможность выполнить нижеприведенную строку на обоих сайтах:
document.domain = 'mydomain.com'

Но у меня есть контроль только на моем сайте, а не на веб-почте.

Super Superman

То, что вы разместили, должно работать в теории. Я предполагаю, что страница веб-почты на http://webmail.mydomain.com делает ли он звонки в другой домен, и именно это блокируется?

Gautam Raithatha

Далее я обнаружил, что javascript в http://webmail.mydomain.com имеет "top.$(..."
Когда я открываю новую вкладку, "top "относится к странице веб-почты, в то время как в iframe" top " относится к веб-странице на моем сайте.

Поэтому я думаю, что ошибка возникает здесь, когда страница в iframe пытается найти и получить доступ к управлению в "top.$ (.." , который является страницей моего сайта, и поэтому он не находит никакого такого управления.

Super Superman

Я думаю, что если у вас нет никакого контроля над кодом на этой странице, то вам будет очень трудно заставить его работать :(

0 Ответов