私はjQuery/AJAXの初心者です。 puposeをテストするためのボタンが付いた小さなアプリケーションがあります。ボタンをクリックすると、同じドメインにあるサーバーに接続して、データを取得して警告します。
問題:アプリケーションがサーバーに接続できません。次のスクリーンショットは、Google Chromeの開発者ツールからのものです。
サーバーには、独自の自己署名証明書があります。 Webブラウザ経由でサーバーに接続すると、以下に示すようにSSL証明書の警告が表示されます。
続行をクリックしてサーバーにログインすると、この後、アプリケーションはサーバーからデータを取得することもできます(Webアプリのボタンをクリックすると、サーバーから取得したデータを警告します)。
質問:これに対する回避策はありますか、このエラーを回避できますか? Webブラウザー経由でサーバーにログインした後、なぜ機能するのですか?私のアプリは同じドメイン内でローカルに使用され、公開アプリではありません。
jQuery Code:私はこのコードを持っています:
$('#mybutton').click(function(){
$.ajax({
type: "GET",
url: "https://192.168.150.33/Api/loc?jsonpCallback=myCallback",
dataType:"jsonp",
async: false,
beforeSend: function (request){
request.withCredentials = true;
request.setRequestHeader("Authorization", "Basic " + btoa('admin' + ":" + 'password'));
},
success: function(response){
alert('hi');
},
});
});
function myCallback(response){
data= JSON.stringify(response)
alert(data)
ここ は同じ問題に対処する投稿です。それによると、この投稿を理解している限り、解決策はありません。任意の提案が役立ちます。ありがとう
ブラウザで実装されたSSLエラー/警告動作をプログラムでバイパスすることはできません。セキュリティレイヤーを完全に無効にできる場合は可能です。
これをローカル/Windowsドメイン環境で行う場合は、自己署名証明書を 信頼できるストア に追加するだけです。
さらに、証明書は(通常)IPアドレスではなくドメイン名に発行されるため、Ajax呼び出しで同じことを行う必要があります。