0

我试图向 apiary API 发送请求,但标头始终无效。API 期望字符集为 'utf-8',在代码中正确设置。在api网站的inspector处可以看到请求已经将charset设置为UTF-8... 为什么请求中的charset是大写的?我该如何解决?

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

1 回答 1

0

在这种情况下,发送请求时,它看起来像是XMLHttpRequest将字符集更改为大写。UTF-8通过 Apiary.io 文档尝试请求时,它将内容类型的字符集保持为小写utf-8,并表示请求有效。当我将代码示例复制/粘贴到 Chrome 的控制台中并查看发出的请求时,它会更改 charset 大写,这表明请求无效。

在关于设置字符集的 jQuery 文档中,它说如下:

W3C XMLHttpRequest 规范规定字符集始终为 UTF-8;指定另一个字符集不会强制浏览器更改编码。

鉴于此,我尝试将字符集更改为其他内容,但它仍然显示charset=UTF-8在请求中,所以我最初的想法是它始终是大写的。

于 2015-03-08T02:21:00.900 回答