IE8和" Img已安全交付"警告

时间:2013-06-26 07:50:25

标签: javascript jquery html internet-explorer-8

在我的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设置。

2 个答案:

答案 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)。