iframe не отображает HTML-страницу - PullRequest
0 голосов
/ 21 декабря 2011

Внутри тега iframe - вызывается скрипт CGI - который возвращает HTML, но который не отображается. Даже просмотр iframe -> view source не дает ничего, кроме пустой HTML-страницы.

При вызове того же самого скрипта CGI непосредственно из браузера, он работает правильно. Он показывает простую HTML-страницу с одной таблицей.

Каковы все вероятные проблемы? Может кто-нибудь помочь?

Проблема в реальном контексте: Это скрипт отчетности из bugzilla 3.6, который вызывается в IFRAME, который правильно отображает отчет в iframe. Но тот же самый скрипт в bugzilla 4.0, который называется, ничего не показывает только в iframe.

  1. Я выполнил оба сценария с помощью wget - оба дают одинаковый html (за исключением некоторых полей таблицы - что не может быть проблемой).
  2. Прямое выполнение CGI из браузера обоих сценариев - и сохранение страницы в виде HTML - оба одинаковы (за исключением некоторых полей таблицы - что не может быть проблемой).
  3. Пробовал отлаживать скрипт cgi - оба печатают почти одинаковые сообщения - некоторые аргументы - dumper и тому подобное ...

Понятия не имею, что еще проверить, пожалуйста, помогите. Спасибо.

1 Ответ

1 голос
/ 20 января 2012

Я столкнулся с той же проблемой и обнаружил следующее в Замечаниях по выпуску Bugzilla 4.0

Теперь Bugzilla отправляет заголовок X-Frame-Options: SAMEORIGIN при каждом запросе страницычтобы предотвратить атаки "clickjacking".Обратите внимание, что это не позволяет другим доменам отображать Bugzilla во фрейме HTML.

Закомментируйте следующие строки в CGI.pm, чтобы Bugzilla не установила заголовок.

# Add X-Frame-Options header to prevent framing and subsequent
# possible clickjacking problems.
unless ($self->url_is_attachment_base) {
    unshift(@_, '-x_frame_options' => 'SAMEORIGIN');
}
...