私はこのエラーが発生しないようにサーバーをだますための方法があります:
有効なセキュリティ証明書によって署名されていないため、コンテンツはブロックされました。
私は別のウェブサイトにhtmlウェブサイトのiframeを引っ張っています、しかし私はこの質問のタイトルとインターネットエクスプローラでそれが言うコンソール(クロム)エラーを得続けます:
有効なセキュリティ証明書によって署名されていないため、コンテンツはブロックされました。
あなたのリソースはおそらくHTTPSプロトコル上の自己署名SSL証明書を使用しています。 Chromiumなので、Google Chromeはデフォルトでこの種のリソースを安全でないと見なしてブロックします。
このようにしてこれを回避することができます。
https://www.domain.com
であると仮定すると、chromeで新しいタブを開いてhttps://www.domain.com
に行きます。あなたが推測できるように問題はあなたのウェブサイトの各訪問者があなたのフレームにアクセスするためにこの仕事をしなければならないということです。
Chromeはあなたがこのドメインを信頼していることを永遠に記憶することができますが、chromeはあなたのURLを各ナビゲーションセッションの間ブロックするでしょう。
あなたのフレームがHTTPSではなくHTTPによってアクセスされることができるならば、私はあなたがそれを使うことを勧めます、それでこの問題は解決されるでしょう。
場合によっては、Google Chromeがこのエラーをスローすることもあります。 Chromeが新しいバージョンになったときに経験したため、再起動する必要がありました。同じページを再起動した後、エラーなしで動作しました。コンソールのエラーは次のとおりです。
net::ERR_INSECURE_RESPONSE
私はまだ(最新の)EdgeとChromeブラウザの両方のためのAsus T100 Windows 10テスト装置で上記の問題を経験しました。
解決策は デバイスの//date/time設定にありました ;どういうわけか日付が正しく設定されていません(過去の日付)。正しい日付を設定して(そしてブラウザを再起動して)これを復元することで問題は解決しました。私は誰かがこの問題をデバッグする頭痛の種を省くことを願っています。
コンソールを開いて中のURLをクリックしてください。それはあなたをAPIページに連れて行きます、そして次にページでSSL証明書を受け入れて、あなたのアプリページに戻ってリロードしてください。 SSL証明書は、以前にDev環境用に発行されたはずであることを覚えておいてください。
開発していて、Windowsマシンで開発している場合は、信頼済みサイトとしてlocalhost
を追加してください 。
はい、DarrylGriffithsのコメントによると、Internet Explorerの設定を追加しているように見えるかもしれませんが….
私はそれらがIE設定ではなくWindowsだと思います。 MSはそれらがIEのみであると想定する傾向がありますが(IEを再起動する必要があるという「保護モードを有効にする」の横の警告です)...
このエラーに対して別の解決策を提案する。
バックエンドへのAPI呼び出しを行うフロントエンドアプリケーションがある場合は、証明書が発行されたドメイン名を必ず参照してください。
例えば
https://example.com/api/etc
ではなく
https://123.4.5.6/api/etc
私の場合は、証明書を使ってセキュアサーバーにAPI呼び出しを行いましたが、ドメイン名の代わりにIPを使用していました。これはFailed to load resource: net::ERR_INSECURE_RESPONSE
を投げました。
この問題はSSL認証を意味するあなたのhttpsによるものです。 Localhostを試してください。
このコードを試して、考えられるnet::ERR_INSECURE_RESPONSE
を監視して報告してください。
私はChromeの設定に保存しないことを選択した自己署名証明書を使用して、この問題も抱えていました。 httpsドメインにアクセスして証明書を受け入れた後、ajax呼び出しは正常に機能します。しかし、その受け入れがタイムアウトするか、最初に受け入れられる前に、jQuery.ajax()
呼び出しは暗黙のうちに失敗します。timeout
パラメーターは役に立ちませんし、error()
関数は呼び出されません。
そのため、私のコードはsuccess()
またはerror()
呼び出しを受け取ることがないためハングします。これはjqueryがこのエラーを処理する際のバグだと思います。私の解決策は、指定されたタイムアウト後にerror()
呼び出しを強制することです。
このコードは、フォームjQuery.ajax({url: required, success: optional, error: optional, others_ajax_params: optional})
のjquery ajax呼び出しを想定しています。
注:alert()
を呼び出すのではなく、setTimeout
内の関数を自分のUIに最適に統合するように変更することをお勧めします。
const MS_FOR_HTTPS_FAILURE = 5000;
$.orig_ajax = $.ajax;
$.ajax = function(params)
{
var complete = false;
var success = params.success;
var error = params.error;
params.success = function() {
if(!complete) {
complete = true;
if(success) success.apply(this,arguments);
}
}
params.error = function() {
if(!complete) {
complete = true;
if(error) error.apply(this,arguments);
}
}
setTimeout(function() {
if(!complete) {
complete = true;
alert("Please ensure your self-signed HTTPS certificate has been accepted. "
+ params.url);
if(params.error)
params.error( {},
"Connection failure",
"Timed out while waiting to connect to remote resource. " +
"Possibly could not authenticate HTTPS certificate." );
}
}, MS_FOR_HTTPS_FAILURE);
$.orig_ajax(params);
}