web-dev-qa-db-ja.com

JavascriptでHTTP固有のヘッダーを削除する方法

Httpメッセージを送信する前に、javascript/XmlHttpRequestを使用して特定のhttpヘッダーを削除することは可能ですか?

私は独自のブラウザを使用しているので、ブラウザ固有のソリューションを使用してそれを行う方法はありません。

たとえば、メッセージを送信する前にヘッダー「Authorization」を削除したい

POST /social/rpc?oauth_version=1.0& ... HTTP/1.1

Accept: text/html, image/png, image/*, */*
Accept-Language: ko
Authorization: Basic Og==
Host: test.myhost.com

よろしく

16
Andres

ブラウザがサポートしていると仮定して、XmlHttpRequestオブジェクトのsetRequestHeaderメソッドを使用できます。これは W3C仕様 の一部です。 IEでも実装されています

var req = new XMLHttpRequest();
req.setRequestHeader("Authorization", "");
16
Adam

Jquery-file-uploadを使用していて、optionsメソッドのヘッダーを削除したい場合、それをnullまたは_''_に設定しても機能しません。私は代わりにこれを使用します:

req.setRequestHeader("Authorization");

5
Fancyoung

一度もやったことはありませんが、理論的には次のことを試すことができます。

_xhr.setRequestHeader('Authorization', null);
_

一部の実装には不特定のremoveRequestHeader()関数もありますが、それも試してみることをお勧めします。

4
BalusC

アダムの答えは私にはうまくいきませんでした。ただし、次のことを行いました。

xhr.setRequestHeader('Authorization', ' ');

2番目のパラメータは、空のスペースではなくスペースを含む文字列であることに注意してください。ヘッダーを完全に削除するわけではありませんが、空の文字列に設定します。これで十分な場合もあります。

0
Dmitry Efimenko