Как получить доступ к полям на странице в iframe?

#visual-studio-2008 #.net-3.5 #ssl

#visual-studio-2008 #.net-3.5 #ssl

Вопрос:

У меня есть страница .aspx, которая содержит iframe. Я рисую встроенную страницу со своего ssl-сервера. Когда я пытаюсь изменить поля на встроенной странице с помощью javascript (я помещаю данные в скрытые поля, чтобы я мог использовать их на стороне сервера для идентификации клиента) Я получаю сообщение об отказе в доступе. Если я запускаю все это локально, у меня не возникает проблем, поэтому на самом деле вопрос в том, что мне нужно изменить на моем ssl-сервере, чтобы разрешить изменение этих полей?

Javascript действительно прост:

             window.frames["frame1"].document.forms['password_form']["username"].value = document.getElementById("username").value;
  

и, как я уже сказал, работает независимо от того, когда я меняю iframe src на ssl…

Это предварительно скомпилированное приложение, мне интересно, имеет ли это значение. Сама страница не доступна только для чтения.

Спасибо, Рон.

Ответ №1:

Политика одного источника запрещает создание сценариев для документов из разных источников. Протокол (HTTP / HTTPS) является частью исходного кода. Поэтому браузер должен запретить доступ к window.frames["frame1"].document в вашем примере, если только iframe находится на HTTPS.

Простое решение — использовать HTTPS как для главной страницы, так и для iframe.

Возможен обходной путь, но в зависимости от ваших потребностей это может быть слишком хлопотно: http://softwareas.com/cross-domain-communication-with-iframes (долгое, но информативное чтение).

Комментарии:

1. Спасибо Jakub. Проведя небольшое исследование на прошлой неделе, я понял, что на самом деле пытался создавать межсайтовые скрипты, что не входило в мои намерения. Именно так хочет настроить мой босс! Итак, в конечном счете, я здесь, чтобы выполнить…