Ajax 在IE中;X-request-With";jquery的头变成了";x-request-with";(小写)

Ajax 在IE中;X-request-With";jquery的头变成了";x-request-with";(小写),ajax,internet-explorer,jquery,http-headers,Ajax,Internet Explorer,Jquery,Http Headers,为什么要转换成小写? 在Firefox中是这样的:“X-request-With”。 而在IE中,它是这样的:“x-request-with”HTTP方法应该是区分大小写的,但是HTTP头应该是不区分大小写的 我也注意到了类似的事情。看一下示例代码,以及添加一些自定义HTTP头时它所做的工作。首先是JavaScript代码,然后是来自IE8、Safari4和Firefox3的Fiddler转储(仅限自定义头)。请注意,Firefox支持大小写,即转换为小写,Safari转换为propercase

为什么要转换成小写? 在Firefox中是这样的:“X-request-With”。
而在IE中,它是这样的:“x-request-with”

HTTP方法应该是区分大小写的,但是HTTP头应该是不区分大小写的

我也注意到了类似的事情。看一下示例代码,以及添加一些自定义HTTP头时它所做的工作。首先是JavaScript代码,然后是来自IE8、Safari4和Firefox3的Fiddler转储(仅限自定义头)。请注意,Firefox支持大小写,即转换为小写,Safari转换为propercase

但是,正如前面提到的,服务器会将它们视为不区分大小写,因此这并不重要

function doXHR() {
  var request = new XMLHttpRequest();
  request.open('GET', '/header/header.txt');
  request.setRequestHeader('x-lowercase', 'X-lowercase');
  request.setRequestHeader('x-Propercase', 'X-Propercase');
  request.setRequestHeader('x-CamelCase', 'X-CamelCase');
  request.setRequestHeader('x-UPPERCASE', 'X-UPPERCASE');
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      console.log('Received XMLHttpRequest callback: \n' + request.responseText);
    }
  };
  request.send("");
}
用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.0;Trident/4.0;SLCC1;.NET CLR 2.0.50727;.NET CLR 3.5.21022;.NET CLR 3.5.30729;.NET CLR 3.0.30618)

用户代理:Mozilla/5.0(Windows;U;Windows NT 6.0;en-US)AppleWebKit/528.18(KHTML,如Gecko)版本/4.0 Safari/528.17

X-Lowercase: X-lowercase
X-Uppercase: X-UPPERCASE
X-Camelcase: X-CamelCase
X-Propercase: X-Propercase
用户代理:Mozilla/5.0(Windows;U;Windows NT 6.0;en-US;rv:1.9.0.6)Gecko/2009011913 Firefox/3.0.6(.NET CLR 3.5.30729)


你为什么在乎?HTTP头不区分大小写。此外,您可能希望在问题中添加更多细节。代码示例,确切地说,您在哪里检测到头的大小写已更改,等等。了解它在什么时候变为小写会很有帮助。例如,使用网络调试器(如Fiddler)在线观看。因此,“IE为什么这样做”的答案是“因为它可以”;-)我想是吧!我知道,当涉及到HTTP头时,Microsoft(IE&IIS)喜欢将所有内容都简化为小写。不知道为什么,但我猜这是为了IIS内部的一些东西。OP没有询问HTTP方法。他询问了HTTP头的情况。
X-Lowercase: X-lowercase
X-Uppercase: X-UPPERCASE
X-Camelcase: X-CamelCase
X-Propercase: X-Propercase
x-lowercase: X-lowercase
x-Propercase: X-Propercase
x-CamelCase: X-CamelCase
x-UPPERCASE: X-UPPERCASE