我正在使用 Axios 从 vue.js 项目发送一个帖子请求,它包含一个文件上传,这需要我使用 FormData,我找到了一个很好的答案,可以帮助我使用 FormData:
const getFormData = object => Object.keys(object).reduce((formData, key) => {
formData.append(key, object[key]);
return formData;
}, new FormData());
Run Code Online (Sandbox Code Playgroud)
对于标题:headers: { 'Content-Type': 'multipart/form-data'}.
POST 调用如下所示:
axios.post("http://127.0.0.1:8000/api/document/",
getFormData(this.documentData),
{
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(response => {
console.log("Successfully uploaded: ", response.data)
})
.catch(err => {
console.log("error occured: ", err)
})
Run Code Online (Sandbox Code Playgroud)
这是我要发送的数据:
documentData: {
name: '',
file: '',
version: '',
company: '',
author: '',
category: []
}
Run Code Online (Sandbox Code Playgroud)
当使用单个类别 id 发送数据时,它工作正常,但是当我发送多个类别 id 时,会显示以下错误:
"category": [
"Incorrect …Run Code Online (Sandbox Code Playgroud)