如何解决无法使用 axios.post 将图像发布到 imgur api
我正在通过他们的 API 向 imgur 发布图像。这是 TS 上的 ReactJS 应用。
这里的base64是图片的base64字符串,一般在50到100kb之间
{
"failOnErrors": 1,"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkRequest"
],"Operations": [
{
"method": "POST","path": "/Users","bulkId": "qwerty1","data": {
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User","urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],"userName": "Alexwso26.com","password": "12345678","name": {
"givenName": "Alex26 ","familyName": "Silva26"
},"emails": [
{
"type": "home","value": "Alex26@g.com","primary": true
}
]
}
}
]
}
这对邮递员有效,但是当我在浏览器上尝试时,出现此错误
const imgurApi = axios.create({
headers: {
'Authorization': 'Client-ID xxx'
}
})
export async function postImgurImage(base64: string,username: string,desc: string) {
try {
const data = {
"image": base64,"title": username,"description": desc
}
const res = await imgurApi.post('https://api.imgur.com/3/image',data)
if (res.status === 200) {
console.log(res.data);
return res.data
} else {
return `Error: ${res.statusText}`
}
} catch (err) {
console.log(err);
return err
}
}
编辑 1
这就是 postImgurImage 的调用方式。
Error: Request failed with status code 429
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:62)
const handleImg = (e: React.ChangeEvent < HTMLInputElement > ) => {
e.preventDefault();
if (e.target.files !== null) {
let reader = new FileReader();
let file = e.target.files[0];
reader.onloadend = () => {
setPostImgPreview(reader.result ? .toString())
}
reader.readAsDataURL(file);
}
}
const handlePost = (e: React.MouseEvent < HTMLButtonElement,MouseEvent > ) => {
e.preventDefault();
const postNameVal = postname.current ? .value
const postContentVal = postcontent.current ? .value
if (postNameVal && postContentVal && postImgPreview) {
const base64 = postImgPreview.split(',')[1];
postImgurImage(base64,currentUser ? .username ? ? '',postContentVal).then(data => {
console.log(data);
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。