8

HTTP基本認証を備えたサーバーがあり、上記のHTTPサーバーのユーザー名とパスワードを知っているクライアントスクリプトがあります。私はXHRrequestを使用setRequestHeaderします。これは Authorization ヘッダーを設定するためのものです。このビットにより、ブラウザーがデフォルトの HTTP ログイン ダイアログを表示するのを回避できます。

request.setRequestHeader('Authorization', authInfo);

これはAJAX リクエストの場合は正常ですが、上記のサーバーからファイルをダウンロードしたい場合は、 AJAXを使用せずwindow.location.hrefに、ブラウザがリクエスト自体を作成する JavaScript などを使用する必要があります。このリクエストには Authorization ヘッダーが含まれていないため (ブラウザは、ログイン ダイアログを表示し、実際のサーバーのログイン情報の base64 を保存した後にのみ、すべてのリクエストに Authorization ヘッダーを自動的に追加します)、ブラウザは HTTP ログイン ダイアログを表示しますが、これは避けたいと思います。

ブラウザによって作成された非 ajaxリクエストにヘッダーを設定する方法はありますか?

4

1 に答える 1

2

URL にユーザー名とパスワードを設定してみましたか?

location.href = 'http://user:password@example.com/path/to/download';

残念ながらInternet Explorer 7+を除いて、ほとんどのブラウザーで動作するはずです。

または、サーバーにアクセスできる場合は、Cookie を使用して認証するスクリプトをサーバー側に置くことができます。Cookie は JavaScript で設定できます。

于 2012-06-25T07:06:58.563 に答える