Axios 错误“entity.parse.failed”(发送 FormData 时)

问题描述 投票:0回答:1

我正在尝试使用 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.:当我用失眠来请求时,有效。

javascript node.js post axios request
1个回答
0
投票

您应该只发送

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,
  },
});
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.