如何在Javascript中删除HTTP特定标头

时间:2010-03-17 16:54:59

标签: javascript ajax http-headers xmlhttprequest

在发送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

此致

4 个答案:

答案 0 :(得分:15)

您可以使用XmlHttpRequest对象的setRequestHeader方法,假设您的浏览器支持它,它是W3C spec的一部分。 It is also implemented by IE

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

答案 1 :(得分:4)

从未这样做过,但理论上你可以试试:

xhr.setRequestHeader('Authorization', null);

在某些实现中还有一个未指定的removeRequestHeader()函数,您可能也想尝试一下。

答案 2 :(得分:4)

当我使用jquery-file-upload,并在options方法中删除它时,设置为null''对我不起作用,我使用:

req.setRequestHeader("Authorization");

它对我有用。

答案 3 :(得分:0)

亚当的回答对我不起作用。但是,以下做了:

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

注意,第二个参数是一个包含空格而不是空格的字符串。 它不会完全删除标题,而是将其设置为空字符串,这在某些情况下可能就足够了。