升级到 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 上启用不安全内容的运行?
升级到 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 上启用不安全内容的运行?
根据Apple 支持论坛,Safari 不允许您禁用对混合内容的阻止。
尽管这对于像您这样的合法情况下的可用性令人沮丧,但这似乎是他们努力强制安全内容服务/内容服务最佳实践的一部分。
作为您的解决方案,您可以将 HTTP 连接升级到 HTTPS(您似乎已经完成了)或通过 HTTPS 连接与启用 HTTPS 的服务(或在您的情况下为端口)代理您的内容。
您可以通过在本地使用带有自签名 SSL 证书的 HTTPS 来解决 HTTPS 问题。Heroku 有一篇关于生成.
在所有开发服务器上设置 SSL 后,您仍然会在 Safari 中加载资源时出错,因为正在使用不受信任的证书(默认情况下,浏览器不信任自签名 SSL 证书,因为它们无法通过受信任的机构进行验证)。要解决此问题,您可以在 Safari 的新选项卡中加载有问题的 URL,浏览器会提示您允许访问。如果您在提示中单击“显示证书”,证书详细信息视图中将出现一个复选框,以“始终允许来自本地主机的内容”。在允许访问之前选中此项会将设置存储在 Safari 中以供将来使用。允许访问后,只需重新加载最初出现问题的页面,您就可以开始了。
作为开发人员,这是一个有效的用例,但请确保您完全了解通过进行此更改而添加到系统中的安全隐患和风险!
如果像我一样你有
port1
port2b
http://localhost:port1/app.js
脚本http://localhost:port2/backendPage
我找到了一个简单的解决方法:只需使用 http 响应重定向http://localhost:port2/localFrontend/*path
到http://localhost:port1/*path
后端服务器配置。
http://localhost:port2/localFrontend/app.js
然后你可以直接从而不是直接的前端 url加载你的脚本。(或者您可以为所有资源配置一个基本网址)
这样,Safari 将能够从另一个域/端口加载内容,而无需任何 https 设置。