В IE заголовок jquery "X-Requested-With" становится "x-запрошен-с" (строчным)

Почему он конвертируется в нижний регистр? В Firefox это выглядит так: "X-Requested-With". Хотя в IE это выглядит так: "x-request-with"

Ответы

Ответ 1

Предполагается, что метод HTTP чувствителен к регистру, но заголовки HTTP должны быть нечувствительны к регистру, согласно RFC 2616.

Ответ 2

Я заметил нечто подобное. Взгляните на пример кода и что он делает, когда я добавляю некоторые пользовательские заголовки HTTP. Сначала это код JavaScript, а затем дамп Fiddler (только пользовательские заголовки) из IE8, Safari4 и Firefox3. Обратите внимание, что 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("");
}

User-Agent: 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

User-Agent: 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

User-Agent: 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