ダイジェスト認証を処理するカスタム Web サーバーがあります。Webサーバーに接続し、JavaScriptでダイジェスト認証を実行するWebクライアントがあります。つまり、ポップアップウィンドウはありません。
クライアント側
401 エラーで常に発生するこのようなポップアップ ウィンドウを回避するために、クライアントはカスタム警告ヘッダーを含むデータを要求します。
new XMLHttpRequest();
request.open('GET', urlToGet + "?" + Math.random(), false);
request.setRequestHeader("Warning","CustomRequest");
サーバ側
Web サーバーが CustomRequest 警告ヘッダーを取得するたびに、カスタム HTTP コード (406) と認証ヘッダーで応答します。
次に、クライアントはサーバー ヘッダーを解析し、ハッシュされた認証文字列を作成し、識別できます。これまでのところ、とても良いです (こちらとこちらの以前の質問も参照してください)。
適切なヘッダーができたので、CSS であるすべてのリクエストにブラウザーに含めるようにします。
background-image: url(IMAGE_URL);
またはjquery
$('#theDiv').prepend('<img id="theImg" src=IMAGE_URL />')
またはjquery / AJAX
$.ajax({
url: SOME_URL,
// ...
});
私が使用できることを考えると、後者はおそらく最も単純です
beforeSend : function(req) {req.setRequestHeader('Authorization',authHeader);}
そして、私はauthHeaderを知っています。
jquery/javascript を使用してブラウザに「今後のすべてのリクエストにはこの認証ヘッダーが必要ですか?
別の方法は、Web サーバー側でセッションを実装することですが、これは私が喜んで避けたいことです。