angular - 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,它在那里工作。
解决方案
您正在使用接受数据作为第二个参数和选项作为第三个参数的 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.log
的tap
操作,这是副作用的解决方法。
推荐阅读
- typescript - 打字稿通用参数未正确解析
- android - 从解析服务器检索数组并在列表视图中显示数据
- sql - Oracle中的半转置表
- python - 在 AWS Lambda 中使用 boto3 扫描后修改项目属性
- javascript - 如何在 TypeScript 中映射多种类型的数组?
- javascript - 有没有办法将一种 Blob 图像类型转换为 Javascript 中的一种文件类型?
- mysql - 查询在单独运行时返回结果,当我将其添加到更大的查询时返回不明确的引用
- python - 如何将url添加到html文件中
- javascript - 如何在打开 Android 应用程序的网页(不是 webview)上调用 JavaScript 函数?
- python - 如何将从多个 .vtp 文件中提取的点插入到单个多数据中