我目前正在尝试使用基本授权设置对 REST API (Cloudsight) 的 POST 请求。到目前为止我的代码是:
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://api.cloudsightapi.com/image_requests", true);
xhr.setRequestHeader("Authorization:", "CloudSight [key]");
xhr.setRequestHeader("Content-Type", "http://previews.123rf.com/images/valzann/valzann1412/valzann141200061/34262193-cigarette-end-on-a-white-background-Stock-Photo.jpg");
xhr.send(null);
console.log(xhr.status);
console.log(xhr.statusText);
当我尝试运行它时,出现错误:
未捕获的语法错误:无法在“XMLHttpRequest”上执行“setRequestHeader”:“授权:”不是有效的 HTTP 标头字段名称。
有人知道代码有什么问题吗?我对 JavaScript 和 API 非常陌生,但非常感谢您的回答。 (如果有帮助,这里是 Cloudsight 文档的链接:https://cloudsight.readme.io 我已经浏览过它并尝试找到其他授权 HTTP 标头 JavaScript 示例,但没有成功。)
提供标头时不需要
:
。将它们从以下位置删除:
xhr.setRequestHeader("Authorization:", ...
请求现在通过了,但返回了一些其他错误,您必须自行处理。我想这不会是一个问题。
这适用于每个标题,而不仅仅是
Authorization
。希望这能解决您的问题。