HTTPS対応サイトに、他のサイトのコンテンツを表示するiframeを追加しましたが、httpsの下では機能しません。
<iframe src="//myothersite.com"></iframe>
Firefoxの最新バージョンでは、すべてが正常に機能します。
Chromeでは、iframeが読み込まれず、コンソールに次の2つのエラーが表示されます
Mixed Content: The page at 'https://mysite' was loaded over HTTPS, but requested an insecure resource 'http://myothersite.com'.
This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS
IEコンテンツが誤って読み込まれ、アラートメッセージが表示されます。[安全でないコンテンツを許可する]をクリックすると、正しく読み込まれます。
問題は、どのようにすればいいかということですIE and Chrome= Firefox(アラートなしで混合コンテンツをロード)?
注:ブラウザーの設定は変更していません。
実際、Firefoxは同じことを始めました: ブロックされた混合コンテンツでWebサイトを修正する方法
それは理にかなっている。ユーザーがHTTPSを使用してサイトにアクセスする場合、ユーザーはセキュリティで保護されたエクスペリエンスを期待しており、セキュリティで保護されていない接続でのアプリケーションの読み込みの一部に気付かないことがあります。これが、ブラウザーがこのような不整合をブロックする理由です。
Myothersite.comでHTTPSを提供する必要があります。
明らかに、MITM攻撃を防ぐためにコンテンツを混在させないことが最善ですが、URLを制御できない人にとっては、これはトリックを行う必要があります。
src = "http://linkToUrl.com"を変更します
src = "// linkToUrl.com/script.js"
申し訳ありませんが、これは他の回答ほど技術的ではありませんが、このようなjsqueryのリンクと同じ問題があり、私にとってはhttp://
をhttps://
に変更するだけで修正されました。うまくいかないかもしれませんが、私にとってはうまくいき、あなたにとってはうまくいくかもしれません。
httpsリクエストからurl:<a href="http://127.0.0.1:8080/download/1.txt"></a>
を設定すると、エラーが報告されます:混合コンテンツ:'https://127.0.0.1/index.html'
のページはHTTPS経由でロードされましたが、安全でないリソース'http://127.0.0.1:8080/download/1.txt'
を要求しました。
This request has been blocked; the content must be served over HTTPS.
Failed to load resource: net::ERR_CACHE_MISS
target="_blank"
をURLに追加したとき:<a target="_blank" href="http://127.0.0.1:8080/download/1.txt">
、それは動作します! 、 できます! target="_blank"
は、リンクされたドキュメントを新しいウィンドウやタブ、または新しいリクエストで開くことを意味することはよく知られています!
CloudFlareには他の問題があります。ファイルがhttpとしてキャッシュされているため、ロードされません。 CloudFlareにアクセスし、キャッシュタブで[すべてをパージ]するか、[開発モード]をオンにします。
問題は混合コンテンツであり、ブラウザはそれを行うことを許可しません。
次からURLを変更する必要があります。
http://example.com
に
//example.com