web-dev-qa-db-ja.com

JavaScriptを使用してカスタムHTTPヘッダーを追加する

HTMLページで、画像( "img")またはアンカー( "a")タグのリンクをクリックしながら、GETリクエストのカスタムヘッダーを追加したいと思います。これらのリンクは通常、動的コンテンツをダウンロードするためのものです。これらのヘッダーは、SAMLヘッダーまたはカスタムアプリケーション固有のヘッダーです。

JavaScriptを使用してこれらのカスタムヘッダーを追加することはできますか?または、XMLHttpRequestを介してこれらを追加する場合、ダウンロード機能をどのように実現できますか?

この要件はIE6または7専用です。

40
Srinivas

[〜#〜] xhr [〜#〜] を使用している場合、setRequestHeaderが機能するはずです。

xhr.setRequestHeader('custom-header', 'value');

追伸 Hijax を使用してアンカーの動作を変更し、何らかの理由でクライアントでAJAXが無効になっているスクリプトなど)が機能しない場合に機能するようにする必要がありますページで)。

40
Hank Gay

これを実現する最も簡単な方法は、HTTPヘッダーの代わりにクエリ文字列を使用することだと思います。

12
Mehrdad Afshari

ブラウザー内から要求にヘッダーを追加する唯一の方法は、XmlHttpRequest setRequestHeaderメソッドを使用することです。

これを「GET」リクエストで使用すると、リソースがダウンロードされます。トリックは、意図した方法でリソースにアクセスすることです。表面的には、GET応答を短時間キャッシュできるようにする必要があります。したがって、新しいURLへのナビゲーションまたはsrc urlを使用したIMGタグの作成では、以前の「GET」からのキャッシュされた応答を使用します。ただし、特にIEで失敗する可能性が非常に高く、キャッシュが関係する場合は、それ自体が少し法則になります。

最終的にはMehrdadに同意します。クエリ文字列の使用が最も簡単で信頼性の高い方法です。

別の風変わりな代替手段は、XHRを使用して、リソースにアクセスする意図を示すURLへの要求を作成することです。それは、セッションCookieで応答することができます。セッションCookieは、その後の画像またはリンクのリクエストで送信されます。

12
AnthonyWJones

既に述べたように、最も簡単な方法はクエリ文字列を使用することです。

ただし、セキュリティ上の理由でできない場合は、Cookieの使用を検討する必要があります。

0