Подтвердить что ты не робот

Safari 9 запретил использование небезопасного контента?

после обновления до Safari 9 я получаю эту ошибку в браузере:

[Warning] [blocked] The page at https://localhost:8443/login was not allowed to run insecure content from http://localhost:8080/assets/static/script.js.

Кто-нибудь знает, как включить запуск небезопасного контента на новом Safari?

4b9b3361

Ответ 1

В соответствии с Форумы поддержки Apple Safari не позволяет отключить блок на смешанном контенте.

Несмотря на то, что это неудобно для удобства использования в таких законных случаях, как ваше, кажется, что они являются частью их усилий, чтобы заставить использовать лучшие сервисы для обслуживания контента/контента.

В качестве решения для вас вы можете либо модернизировать HTTP-соединение с HTTPS (что, кажется, вы сделали), либо проксировать свой контент через HTTPS-соединение с помощью службы HTTPS (или, в вашем случае, порта).

Ответ 2

Вы можете исправить проблему HTTPS, используя HTTPS локально с самоподписанным сертификатом SSL. Heroku имеет отличную практическую статью о создании одного.

После настройки SSL на всех серверах разработки вы по-прежнему получите ошибку при загрузке ресурса в Safari, поскольку используется ненадежный сертификат (самоподписанные SSL-сертификаты по умолчанию не проверяются браузерами, поскольку они не могут быть проверены с помощью доверенный орган). Чтобы исправить это, вы можете загрузить проблемный URL-адрес на новой вкладке в Safari, и браузер предложит вам разрешить доступ. Если вы нажмете "Показать сертификат" в приглашении, в окне сведений о сертификатах появится флажок "Всегда разрешать контент с локального хоста". Проверяя это, прежде чем разрешить доступ, вы сохраните настройку в Safari в будущем. После разрешения доступа просто перезагрузите страницу, изначально имеющую проблему, и вам должно быть хорошо идти.

Это допустимый прецедент в качестве разработчика, но, пожалуйста, убедитесь, что вы полностью понимаете последствия безопасности и риски, которые вы добавляете в свою систему, внеся это изменение!

Ответ 3

Если у меня есть

  • интерфейс port1
  • backend на port2b
  • хотите загрузить script http://localhost:port1/app.js из http://localhost:port2/backendPage

Я нашел легкое обходное решение: просто перенаправьте с ответом HTTP все http://localhost:port2/localFrontend/*path в http://localhost:port1/*path из конфигурации вашего сервера.

Тогда вы можете загрузить свой script непосредственно из http://localhost:port2/localFrontend/app.js вместо прямого URL-адреса frontend. (или вы можете настроить базовый url для всех ваших ресурсов)

Таким образом, Safari сможет загружать контент из другого домена/порта без необходимости установки https.