【发布时间】:2021-12-09 13:15:10
【问题描述】:
我正在使用 ReactJs 并想通过 Axios 将数据发送到 Laravel API。
我试试
export const send = (data, File) => {
const formData = new FormData();
formData.append('media', File);
try {
PostRequest.post('/post', { formData, data })
.then(r => console.log(r.data))
.catch(e => console.log(e));
} catch (error) {
console.log(error);
}
};
我这样调用 send :
let data = {
mobile: mobile,
email: emailAddress,
userName: userName,
password: password,
firstName: firstName,
lastName: lastName,
website: website,
bio: bio,
date: selectedDay,
code: code,
};
console.log(profile);
console.log(data);
send(data, profile);
日志
但响应中的表单数据为空
我这样设置标题:
headers: {
"Content-Type": "multipart/form-data",
"Accept":"application/json"
}
我也试试
const formData = new FormData();
formData.append('media', profile);
let data = {
mobile: mobile,
email: emailAddress,
userName: userName,
password: password,
firstName: firstName,
lastName: lastName,
website: website,
bio: bio,
date: selectedDay,
code: code,
media: formData,
};
send(data);
但媒体为空
【问题讨论】:
-
在您的第一次尝试中,
File变量的类型是什么? .append() 期待 Blob/File 的实例,我不知道您是在使用名为 developer.mozilla.org/en-US/docs/Web/API/File/File 的类还是忘记调用它,或者它是否已经是它。 -
@JonathanRosa 由输入文件设置的文件,例如: const onChangeHandler = (e) => { setProfile(e.target.files[0]);}
标签: javascript reactjs api axios