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

And*_*res 16 javascript ajax xmlhttprequest http-headers

是否有可能在发送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
Run Code Online (Sandbox Code Playgroud)

问候

Ada*_*dam 17

假设您的浏览器支持它,您可以使用XmlHttpRequest对象的setRequestHeader方法,它是W3C规范的一部分.它也是由IE实现的.

var req = new XMLHttpRequest();
req.setRequestHeader("Authorization", "");
Run Code Online (Sandbox Code Playgroud)

  • 根据规范,这应该永远不会删除标题.它只会追加价值.所以即使你传递null或""它也不会改变原始值. (10认同)
  • @madhairsilence - 不适合我 (2认同)
  • 同意,这完全不会**不**“删除”标题。它_可能_无效其_effect_服务器端,具体取决于标头和服务器。这很可能不是您想要做的,在某些情况下,这可能是灾难性的。 (2认同)

Fan*_*ung 5

当我使用jquery-file-upload并想要删除options方法中的标头时,将其设置为nullor ''对我不起作用。我用这个代替:

req.setRequestHeader("Authorization");