0

ダイジェスト認証を処理するカスタム 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 サーバー側でセッションを実装することですが、これは私が喜んで避けたいことです。

4

0 に答える 0