起初我在我的网站上没有任何SSL证书,因为托管服务提供商不允许这样做。
所以,我已将我的域名转移到CloudFlare&获得了我网站的SSL证书。
对于SSL证书,网站中的内容应该类似于<img src="**https**://www.example.com/image.png
(不是<img src="http://www.example.com/image.png">
),否则会显示有关混合内容的问题。
因此,遵循规则,我做了同样的事情。但是在底部,一些第三方广告由托管服务提供商拥有,其中包含http://
连接。因此,我在浏览器中收到了不受信任的证书错误。
托管服务提供商不允许通过付款或其他方式来修改或删除这些项目。
但CloudFlare已经有一个系统可以自动将所有<script src="http://www.example.com/script.js"></script>
更改为<script src="https://www.example.com/script.js"></script>
。但我的问题是,它无法将<img src="http://www.example.com/image.png">
更改为<img src="https://www.example.com/image.png">
。
是否可以使用JavaScript将<img src="http://www.example.com/image.png">
修改为<img src="https://www.example.com/image.png">
?如果我使用JavaScript,它会被解决吗?
答案 0 :(得分:1)
尝试在文档HTML上使用String.replace。
编辑:经过更多研究,您可能想尝试使用:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
而不是JavaScript解决方案
document.documentElement.innerHTML = document.documentElement.innerHTML.replace("http://", "https://");
console.log(document.documentElement.innerHTML);
<html>
<head></head>
<body>
</body>
</html>
<img src="http://somethingsomething">