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?
Ответы
Ответ 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.