У меня есть <iframe>
внутри <div>
. Мой внешний URL - http://localhost:9090
, а источник в iframe - http://localhost:9090/Server/v1
. В моем внешнем контексте у меня есть код ниже для доступа к iframe dom:
const f1 = window.frames[iframeName];
const iFrameHead = f1.document.getElementsByTagName("head")[0];
и я получаю исключение во второй строке:
Uncaught DOMException: заблокирован кадр с источником
"http://localhost:9090" от доступа к фрейму перекрестного происхождения.
Причина, по которой я хочу получить доступ к ifame dom, заключается в том, что мне нужно вставить скрипт в этот iframe. Src в iframe имеет тот же протокол, имя хоста и номер порта. Чего я не понимаю, так это того, что iframe имеет тот же источник, что и родительский контекст. Почему он жалуется на происхождение креста?
После некоторой отладки я обнаружил, что причина в том, что iframe
был перенаправлен в другой домен, чем src
. Интересно, есть ли обходной путь для вставки скрипта в этот iframe?