升级到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上启用不安全内容的运行?
答案 0 :(得分:4)
根据Apple support forums Safari不允许您在混合内容上禁用阻止。
虽然这对于像您这样的合法案件的可用性而言令人沮丧,但似乎是他们努力强制安全内容服务/内容提供最佳实践的一部分。
作为您的解决方案,您可以将HTTP连接升级到HTTPS(您似乎已经完成)或通过HTTPS连接使用启用HTTPS的服务(或者在您的情况下为端口)代理您的内容。 / p>
答案 1 :(得分:1)
您可以通过本地使用HTTPS和自签名SSL证书来修复HTTPS问题。 Heroku has a great how-to article about generating one。
在所有开发服务器上设置SSL后,由于使用了不受信任的证书,因此在Safari中加载资源时仍会出现错误(默认情况下,浏览器不信任自签名SSL证书,因为无法通过受信任的权威机构)。要解决此问题,您可以在Safari的新选项卡中加载有问题的URL,浏览器将提示您允许访问。如果在提示中单击“显示证书”,证书详细信息视图中将出现一个“始终允许来自localhost的内容”的复选框。在允许访问之前检查此内容将在Safari中存储该设置以供将来使用。在允许访问后,只需重新加载最初出现问题的页面,您应该很高兴。
作为开发人员,这是一个有效的用例,但请确保通过进行此更改来充分了解您添加到系统中的安全隐患和风险!
答案 2 :(得分:0)
如果像我一样,你有
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
加载脚本而不是直接前端网址。 (或者您可以为所有资源配置基本网址)
这样,Safari就可以从其他域/端口加载内容而无需任何https设置。
答案 3 :(得分:0)