【问题标题】:Apiary Invalid Header蜂房标头无效
【发布时间】:2015-03-08 10:21:00
【问题描述】:

我正在尝试向 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));

【问题讨论】:

    标签: javascript xmlhttprequest apiary.io apiary


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2015-11-05
      • 2017-03-27
      • 1970-01-01
      • 2018-06-23
      相关资源
      最近更新 更多