在我的具有 SSL 认证 URL 的网站中,我需要包含静态内容的 http 内容 - JS、CSS、图像等。
例如,https://www.example.com
将参考的页面http://subdomain.example.com/images/a.jpg
。
有没有办法在 HTTPS 页面中包含 HTTP 元素,避免浏览器中的任何安全警报?
不可以。安全警告的存在是有原因的,无法绕过。
如果有人通过中间人攻击改变了 JS 途中怎么办?他们可以添加自己的代码并拥有对 DOM 的完全访问权限,从而使 SSL 毫无价值。
为了安全起见,您需要通过 HTTPS 加载整个页面,而不仅仅是 HTML 文档。如果你是安全的,那么关于不安全的警告就会消失。
调用静态资产时无需定义 http://。你可以使用相对协议的 url,基本上你可以这样做:
<img src="//subdomain.abc.com/images/a.jpg" alt="">
它将通过与您所在页面相同的协议获取图像。保罗爱尔兰人会在他的博客上比我解释得更好
如果您的 https 页面包含 http 内容,我认为您无法绕过安全警报(在提供安全警报的浏览器上)。但请检查引用是否也适用于 https(当然取决于服务器)。如果是这样,您可以使用像 //subdomain.example.com/images/a.jpg 这样的 URL,这意味着将使用页面本身的协议(http 或 https)。