2017-03-03 42 views
1

我一直无法找到正确的答案。我有一个脚本,我们将其称为http://www.example.com/testing.js,这是我在多个HTTP服务站点上使用的。现在我有一个被HTTPS服务两个新的网站,当我添加文件<script src="http://www.example.com/testing.js"></script>我收到以下错误我可以创建一个兼容HTTP和HTTPS的JavaScript文件吗?

Mixed Content: The page at 'https://location.mysite.com/my-account' was loaded over HTTPS, but requested an insecure script 'http://www.example.com/testing.js'. 

这一要求已被封锁;内容必须通过HTTPS提供。

我想通过HTTPSHTTP使用相同的文件,需要更改或添加到我的JavaScript来处理这两个文件?

+0

您无法解决此问题。这取决于浏览器,并且您无法控制此操作。 – Cooper

+0

您需要为要从中提供文件的URL添加ssl。 –

回答

6

你应该调用该文件,像这样:

<script src="//www.example.com/testing.js"></script> 

根据页面的协议,它会自动选择协议。 这就是我给出的代码中没有协议的原因。

但请记住 如果你的域名是www.example.com,也可以通过https这只会工作://即已经支持SSL

1

你应该使用:

<script src="https://www.example.com/testing.js"></script> 

从一个https网页,它会加载https版本,并从一个http网页它也会加载https版本,它会而不是被阻止(阻止它从https网页加载http javascript)。

该解决方案工作,但不是最好的:

<script src="//www.example.com/testing.js"></script> 

从HTTPS网页将加载HTTPS版本,而从HTTP网页将加载的HTTP版本。

这不是最好的,因为它不太安全,它迫使你在托管javascript的服务器上允许http和https(或者获得301罚分)。

请注意,您应该考虑将您的http网站迁移到https,现在是2017年...

相关问题