在我的https应用程序中,我正在加载一些图像。如果Img src不可用,我将显示默认图像 - 我得到的这个js也可以用于IE的工作:
$(document).ready(function(){
$("img").each(function(index) {
$(this).error(function() {
this.src = "/shared/ts/web/images/missing_img.gif";
});
$(this).attr("src", $(this).attr("src"));
});
});
它适用于IE10,但是对于IE8,我有一个安全警告:
您是否只想查看安全传送的网页内容?
如果我点击是 - >我看不到missing_img.gif,如果我点击没有一切都好。
你能告诉我为什么我会收到这个警告,我该怎么做才能删除它? 我不想更改客户端默认的IE8设置。
答案 0 :(得分:1)
从它的外观来看,你没有通过https提供特定图像。在传输过程中,攻击者可能会修改或读取未通过https传递的任何资源。这会在某些浏览器中引发错误,而其他浏览器(例如Chrome)将“删除”网址中的“https”位,以表明并非所有元素都是安全的。
要解决此问题,请确保您投放的所有资源都是通过https进行的。因此,在这种情况下,您可能希望通过执行
来强制它this.src = "https://mysite.com/shared/ts/web/images/missing_img.gif";
我不完全确定为什么这不会自动使用https。也许其他人可以启发你。
答案 1 :(得分:1)
这是因为您的图像(因为您未指定https://作为协议)获取http://协议..
由于这是在您的安全网站上,它会尝试加载“http://domain.com/shared/ts/web/images/missing_img.gif”,这是“在安全网站上不安全的内容”
我认为你可以通过使路径绝对(包括它的整个部分,包括https://your-domain.com)或使用“//”(双斜线)并省略http(s):part,来解决这个问题。所以它将采用与网站相同的协议(当网站安全时为https,否则为http)。