Обход заблокированного фрейма с источником от доступа к фрейму перекрестного происхождения с помощью postMessage () - PullRequest
0 голосов
/ 12 января 2019

Я слышал, что вы можете обойти "заблокированную фрейм с источником от доступа к фрейму перекрестного происхождения" с помощью postMessage (), и я пытался его использовать, но он не работает должным образом. Что я делаю не так?

<iframe src="www.example.com" id = "theID"></iframe>

document.getElementById('theID').contentWindow.postMessage({
document.querySelector("input[value='true']").click();
});

1 Ответ

0 голосов
/ 13 января 2019

Вы можете использовать свой сервер в качестве прокси. Предполагая, что вы намереваетесь загрузить страницу XYZ внутри iframe, вы можете создать страницу XYZ.php, которая отправляет запрос в XYZ и отображает ответ на странице. Вам нужно будет решить проблемы, которые могут возникнуть из-за относительных URL-адресов. Кроме того, убедитесь, что все, что вы делаете, является доброжелательным и законным.

Поток будет выглядеть так:

  • запрос на parent.php отправляется на сервер
  • сервер отвечает parent.php браузеру
  • внутри структуры parent.php у вас есть iframe, указывающий на child.php, который также является вашей страницей
  • child.php в свою очередь отправляет запрос фактическому источнику и отправляет ответ, который он получает, в браузер
  • событие onload для iframe вызовет логику для parent.php, которую вы намеревались выполнить
...