HTTPS iframe внутри HTTPS-страницы не работает

Как мы можем правильно использовать страницы github, встроенные в iframe?

Я разместил веб-сайт в firebase, и он использует собственный домен через https, например, https://www.example.com.

Этот веб-сайт использует реакцию и другие вещи, но для одного маршрута (целевой страницы) я хотел бы использовать статическую страницу, размещенную на github, например https://example.github.io/страница. Итак, для этого я создал iframe внутри маршрута https://www.example.com/page.

Проблема в том, что я получаю следующую ошибку:

Смешанный контент: страница 'https://www.example.com/page была загружена по протоколу HTTPS. , но запросил небезопасный ресурс 'http://example.github.io/page/'. Этот запрос был заблокирован; контент должен передаваться через HTTPS.

Странно то, что iframe выглядит правильно:

<iframe title="Page" src="https://example.github.io/page">unwanted text</iframe>

Он уже использует https, но похоже, что это игнорируется. Я уже пытался использовать этот мета <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">, закрыть iframe с помощью </iframe> и добавить ненужный текст внутрь iframe.

Можем ли мы решить это?


person GarouDan    schedule 07.01.2018    source источник
comment
Попробуйте добавить косую черту в конце URL-адреса iframe.   -  person rustyx    schedule 07.01.2018
comment
Вау, вроде работает =). Я не знаю почему. Вы хотите опубликовать это как ответ?   -  person GarouDan    schedule 07.01.2018


Ответы (1)


Если вы внимательно изучите свой HTML-код и сообщение об ошибке, вы заметите небольшую разницу в URL-адресах, помимо части протокола:

  • https://example.github.io/page - в теге iframe src
  • http://example.github.io/page/ - в сообщении об ошибке

Причиной может быть то, что URL-адрес https://example.github.io/page возвращает перенаправить на «каноническую» версию с завершающей косой чертой (/page/), но URL-адрес перенаправления должен быть полным URL-адресом, а сервер по какой-то причине не включает фактический протокол в URL-адрес перенаправления, всегда используя http:// вместо. Это может быть связано с конфигурацией или кодированием на стороне сервера (см. также проблему github #289). ).

В качестве обходного пути используйте URL-адрес, который не вызывает перенаправление канонизации, например https://example.github.io/page/.

person rustyx    schedule 07.01.2018
comment
Это была и моя проблема. Если перенаправление происходило, это не было ясно из запроса. - person matthewpavkov; 01.05.2018