我正在尝试使用 Axios 发出请求,我需要将正文作为 FormData 发送,但我遇到了这个问题:
错误:
{
"errors": {
"expose": true,
"statusCode": 400,
"status": 400,
"body": "----------------------------524246740682154737031830\r\nContent-Disposition: form-data; name=\"proposalData\"\r\n\r\n{// my data is here}\r\n----------------------------524246740682154737031830--\r\n",
"type": "entity.parse.failed"
}
}
我的代码:
const body = await req.json();
const formData = new FormData();
formData.append('option1', JSON.stringify(body));
const response = await axios.post(url, formData, {
headers: { Authorization: token, },
});
我试过这个:
const body = await req.json(); const formData = new FormData();
formData.append('option1', JSON.stringify(body));
const response = await axios.post(
url,
formData, {
headers: {
Authorization: token,
...formData.getHeaders()
},
}
);
尝试手动添加:
headers: {
Authorization: token,
"Content-Type": "multipart/form-data"
},
PS.:当我用失眠来请求时,有效。
您应该只发送
body.client
的信息,而不是整个body
。而且 API 文档中没有提及 option1
字段,因此我认为每个属性都应该是 FormData
中的单独字段。
const body = await req.json();
const formData = new FormData();
Object.entries(body.client).forEach(
([key, value]) => formData.append(key, value));
const response = await axios.post(url, formData, {
headers: {
Authorization: token,
},
});