【问题标题】:in IE, the "X-Requested-With" header of jquery becomes "x-requested-with" (lowercase)在 IE 中,jquery 的“X-Requested-With”标头变为“x-requested-with”(小写)
【发布时间】:2009-07-15 09:16:52
【问题描述】:

为什么要转换成小写? 在 Firefox 中,它是:“X-Requested-With”。 在 IE 中,它是:“x-requested-with”

【问题讨论】:

  • 你为什么在乎? HTTP 标头不区分大小写。此外,您可能想为您的问题添加更多细节。代码示例,您检测到标头的大小写已更改的确切位置等。
  • 知道它在什么时候变成小写会很有帮助。例如,使用 Fiddler 等网络调试器在线观看。

标签: ajax internet-explorer jquery http-headers


【解决方案1】:

根据RFC 2616,HTTP 方法应该区分大小写,但 HTTP 标头应该不区分大小写。

【讨论】:

  • 所以“为什么 IE 这样做”的答案是“因为它可以”;-)
  • 我想是的!我知道当涉及到 HTTP 标头时,Microsoft(IE 和 IIS)喜欢将所有内容都设为小写。不知道为什么,但猜想是因为 IIS 内部的某些东西。
  • OP 没有询问 HTTP 方法。他询问了 HTTP 标头。
【解决方案2】:

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

但是,正如已经提到的,这些被服务器视为不区分大小写,所以它真的没关系。

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)

x-lowercase: X-lowercase
x-camelcase: X-CamelCase
x-uppercase: X-UPPERCASE
x-propercase: X-Propercase

用户代理: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)

x-lowercase: X-lowercase
x-Propercase: X-Propercase
x-CamelCase: X-CamelCase
x-UPPERCASE: X-UPPERCASE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2011-12-31
    • 2010-10-12
    • 1970-01-01
    • 2020-03-01
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多