【发布时间】:2020-08-19 20:38:51
【问题描述】:
我的代码无法正常工作,它不断从服务器接收 400 并且无法上传。我一定在反应组件中犯了错误,所以请你看看我吗?一切都在 Postman 中工作,所以后端代码看起来不错。
import React, { useState } from "react";
import axios from "axios";
const UploadAvatar = () => {
const [image, setImage] = useState();
const handleUpload = async (e) => {
e.preventDefault();
const config = {
headers: {
"content-type": "multipart/form-data",
Authorization: localStorage.getItem("token"),
},
};
try {
const formData = new FormData();
formData.append("avatar", image);
const response = await axios.post(
"/users/me/avatar",
{ formData },
config
);
console.log(response);
} catch (err) {
console.error(err.message);
}
};
return (
<div>
<form onSubmit={handleUpload}>
Select image to upload:
<input
type="file"
onChange={(e) => setImage(e.target.value)}
name="fileToUpload"
/>
<input type="submit" value="Upload Image" name="submit" />
</form>
</div>
);
};
export default UploadAvatar;
【问题讨论】:
-
您收到的错误信息是什么?并检查卷曲是否与邮递员匹配。
-
400 错误请求,是的,它匹配 :)
-
如果 curl 匹配,我认为代码中没有任何问题。您正在发布文件,请尝试将
onChange函数更改为onChange={(e) => setImage(e.target.files[0])}。 -
感谢 Nitesh,但我仍然得到 400 :/
-
您是否正确设置了基本 URL?
标签: reactjs file-upload axios