0

私の https アプリケーションでは、いくつかの画像を読み込んでいます。Img src が利用できない場合は、デフォルトの画像を表示します - IE の仕事をするこの js も取得しました:

$(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 ではセキュリティ警告があります。

安全に配信された Web ページのコンテンツのみを表示しますか?

はいをクリックすると、-> missing_img.gif が表示されません。いいえをクリックすると、すべて問題ありません。

この警告が表示される理由と、それを削除するにはどうすればよいか教えていただけますか? クライアントのデフォルトの IE8 設定を変更したくありません。

4

2 に答える 2

1

これは、イメージが (プロトコルとして https:// を指定しなかったため) http:// プロトコルを取得するためです。

これは安全なサイトであるため、「 http://domain.com/shared/ts/web/images/missing_img.gif 」を読み込もうとしますが、これは「安全なサイトの安全なコンテンツではありません」

これを修正するには、パスを絶対パスにする ( https://your-domain.comを含む部分全体を含める) か、「//」 (二重スラッシュ) を使用して http(s): の部分を省略します。であるため、サイトと同じプロトコルを使用します (サイトが安全な場合は https、それ以外の場合は http)。

于 2013-06-26T07:58:32.407 に答える
1

見た目からすると、その特定の画像を https 経由で配信していません。https によって配信されないリソースは、送信中に攻撃者によって変更または読み取られる可能性があります。一部のブラウザーではエラーがスローされますが、他のブラウザー (Chrome など) では、URL の「https」ビットに「取り消し線」を付けて、すべての要素が安全ではないことを示します。

これを修正するには、配信するすべてのリソースが https 経由であることを確認してください。したがって、この場合、次のようにして強制することができます

this.src = "https://mysite.com/shared/ts/web/images/missing_img.gif";

これが自動的に https を使用しない理由は完全にはわかりません。たぶん、他の誰かがあなたにそのことを教えてくれるでしょう。

于 2013-06-26T07:54:32.507 に答える