Пасека Неверный заголовок

Я пытаюсь отправить запрос в API пасеки, и заголовок всегда недействителен. API ожидает кодировку как «utf-8», которая правильно установлена ​​в коде. В инспекторе сайта API видно, что в запросе указана кодировка UTF-8... Почему кодировка в запросе заглавными буквами? как я могу это исправить?

var Request = new XMLHttpRequest();
Request.open('POST', 'URL');
Request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); //utf-8!!!
Request.onreadystatechange = function () {
  if (this.readyState === 4) {
    console.log('Status:', this.status);
    console.log('Headers:', this.getAllResponseHeaders());
    console.log('Body:', this.responseText);
  }
};

var body = {
  //JSON stuff
};

Request.send(JSON.stringify(body));

person JohnWalker891212    schedule 08.03.2015    source источник


Ответы (1)


Похоже, что XMLHttpRequest изменяет кодировку на верхний регистр UTF-8 в этом случае при отправке запроса. При попытке запроса через документацию Apiary.io он сохраняет кодировку для типа контента в нижнем регистре utf-8 и говорит, что запрос действителен. Когда я копирую/вставляю пример кода в консоль Chrome и просматриваю сделанный запрос, он меняет кодировку в верхнем регистре, что говорит о недопустимом запросе.

В документации jQuery по настройке кодировки сказано следующее:

Спецификация W3C XMLHttpRequest требует, чтобы кодировка всегда была UTF-8; указание другой кодировки не заставит браузер изменить кодировку.

В свете этого я попытался изменить кодировку на что-то другое, и она по-прежнему отображалась как charset=UTF-8 в запросе, поэтому я сначала подумал, что она всегда будет в верхнем регистре.

person Stephen Mizell    schedule 08.03.2015