【发布时间】:2021-12-19 04:42:28
【问题描述】:
我正在尝试使用以下代码通过axios.post 请求上传文件:
export const create = (data) => {
api.post("/api/v1/redacao", { tema: data.tema }).then(postResponse => {
const resp = api.patch("/api/v1/redacao/" + postResponse.data.redacao.id, { titulo: data.titulo, texto: data.conteudo }).then(patchResponse => {
if (patchResponse.status === 200) {
if (data.file) {
const formData = new FormData();
formData.append('file', data.file)
const config = {
headers: {
'content-type': 'multipart/form-data'
}
}
return api.post("/api/v1/redacao/uploadRedacao/" + postResponse.data.redacao.id, formData, config)
}
return false;
}
return null
})
if (resp) {
resp.then((response) => { console.log(response) })
}
return false;
})
}
但是当我在 Chrome 开发工具中查看有效负载数据时,有效负载是空的。 如果我使用没有链接的发布请求,则请求可以正常工作。
有人知道 FormData 有什么问题吗?
【问题讨论】:
-
检查补丁请求是否返回了预期的文件数据?
-
删除
config、you don't need it。手动添加multipart/form-data标头通常会弄乱请求 -
data.file来自哪里?它是如何分配的? -
@Andrey 没有。当我使用上传文件的请求作为第一个请求时,它的工作。问题是当我使用承诺链时。
标签: javascript reactjs axios