Можно ли найти междоменный новый URL-адрес iframe после перенаправления?
-
03-07-2019 - |
Вопрос
Я пытаюсь опубликовать в форме входа приложение на другом поддомене моего сайта. Это стороннее приложение, к которому у меня нет доступа к исходному тексту.
Я знаю, что вы не можете получить доступ к большинству функций междоменного iframe из-за одинаковой политики происхождения а>. Однако все, что мне нужно для доступа, - это URL, который был перенаправлен (через JavaScript) в iframe. У него есть токен сеанса, через который я хочу пройти.
Это похоже на то, что может быть достаточно безопасным, чтобы быть разрешенным, но я пока не нашел способа сделать это. Я использую jQuery, и я пробовал $ ('iframe'). Contents ()
, но у меня, похоже, нет никаких разрешений для этого объекта. Я также проверил $ ('iframe'). Attr ('src')
, но он остается в качестве URL-адреса перед перенаправлением. Есть ли другой способ?
Решение
Нет, у вас нет доступа к любым свойствам внутри фрейма. У вас есть доступ только к свойствам внешнего позиционирования и стиля.
Вот почему работать с кадрами так сложно. Я обычно использую их, только если мне все равно, что с ними делается.
Не можете ли вы выполнить аутентификацию и передачу токенов на стороне сервера? Вместо того, чтобы клиент делал аутентификацию, вы не можете сделать это на своем сервере? Возможно, вам придется проделать дополнительную работу для создания HTTP-запроса и анализа ответа, но вы избежите проблем с iframe.
Суть в том, что на фреймы, вероятно, не стоит полагаться (особенно когда речь идет о кросс-браузерной функциональности) в таких важных вещах, как аутентификация.
Другие советы
Попробуйте этот пример (метод 2), в котором автор устанавливает другой iframe внутри во-первых, загрузка страницы в исходном домене. Внутренней странице разрешено вызывать javascript для внешнего родителя, поскольку они загружаются в одном домене. Просто загрузите внутреннюю страницу с соответствующими параметрами, которые можно передать родителю.