2015-03-08 6 views
0

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

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)); 

ответ

0

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

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

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

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