首页 > 解决方案 > Imgur api 仅在匿名上传图像时返回 401 状态

问题描述

所以我注册了我的应用程序并获得了我的 client_id 和 client_secret。我设置了我的选项并尝试上传图像,但我不断收到 401 状态并显示“需要身份验证”消息。用 get 尝试了我的代码并成功检索了图像。错误仅在我尝试发布图片时发生”。一直在寻找答案,但每个人都在标题中丢失了他们的 client_id,如您所见 - 我得到了我的。

uploadImage(formData): Observable<object> {
const options = {
  headers: new HttpHeaders({
    Authorization: 'Client-ID <My_Client_ID>' // string here, replaced it for this question
  }),
  'mimeType': 'multipart/form-data',
  'contentType': false,
  'data': formData
};
return this.httpClient.post('https://api.imgur.com/3/image', options).pipe(map((res) => {
  console.log(res);
  return res;
}));

我不确定我还能做什么......我在邮递员中使用了我的 client_id,它在那里工作。

标签: angulartypescripthttpclientimgur

解决方案


您正在使用接受数据作为第二个参数和选项作为第三个参数的 post 方法。但是您已经传递了选项来代替 data 参数。改为这样做

uploadImage(formData): Observable<object> {
  const options = {
    headers: new HttpHeaders({
      Authorization: 'Client-ID <My_Client_ID>'
    }),
   'mimeType': 'multipart/form-data',
   'contentType': false,
  };
  return this.httpClient.post('https://api.imgur.com/3/image', formData, options)
  .pipe(tap(console.log));
}

此外,您可以使用运算符执行一个简单console.logtap操作,这是副作用的解决方法。


推荐阅读