javascript - 异步JS请求: setrequestheader authorization

标签 javascript asynchronous

我正在尝试向 unsplash.com 发出异步 XMLHttpRequest 来抓取图片。我创建了一个开发帐户,并获得了以下信息:

  1. 授权码
  2. 应用程序 ID
  3. secret

我将授权代码放入 setRequestHeader() 中,但收到 401 错误

"{"errors":["OAuth 错误:访问 token 无效"]}"

 imgRequest.open('GET', `https://api.unsplash.com/search/photos?page=1&query=${searchedForText}`);
imgRequest.setRequestHeader('Authorization','Authorization code');
imgRequest.send();

最佳答案

根据 documentation ,API 需要 token ,并在 header 中以字符串 Client-ID 开头。

因此,您需要将 header 中的值作为 Client-ID YOUR_APPLICATION_ID 传递,而不仅仅是传递 token 。或者,您也可以在查询参数中传递 token ,如下所示:

https://api.unsplash.com/photos/?client_id=YOUR_APPLICATION_ID

以上是专门针对公共(public)行为的,例如抓取照片。对于私有(private)操作,您需要执行一项复杂的任务,这超出了本问题的范围。

关于javascript - 异步JS请求: setrequestheader authorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47880512/

相关文章:

asynchronous - 如何在 Flask/gunicorn/gevent 中启动一个异步函数?

javascript - 在 Flux/React 中调度级联/依赖异步请求

iOS 异步 http 调用和委托(delegate)

JavaScript 访问 Angular 范围返回 "undefined"- 异步问题?

javascript - 如何解决 HTML5 全屏模式下 Canvas 上鼠标指针的偏移问题?

javascript - 未捕获的语法错误 : Unexpected token this Javasctript Error

java - 为什么 Vert.x 被称为响应式,尽管它是单线程的

javascript - 错误: ng:areq Bad Argument AngularJS

javascript - 如何根据用户 HTML 输入创建文档对象?

javascript - 无法使用javascript创建文本区域