使用 Axios 进行包含文件和数组对象的 POST 请求的正确方式如下:
import axios from 'axios';
// 创建一个 FormData 对象
const formData = new FormData();
formData.append('file', file); // file 是要上传的文件对象
formData.append('name', name); // name 是要上传的其他字段
// 将数组对象转换为 JSON 字符串并添加到 FormData 中
formData.append('data', JSON.stringify(data));
// 发送 POST 请求
axios.post(url, formData, {
headers: {
'Content-Type': 'multipart/form-data' // 设置请求头为 multipart/form-data
}
})
.then(response => {
// 请求成功的处理
console.log(response.data);
})
.catch(error => {
// 请求失败的处理
console.error(error);
});
上述代码中,我们首先创建了一个 FormData 对象,并使用 append
方法添加了要上传的文件和其他字段。然后,我们将数组对象转换为 JSON 字符串,并将其作为一个字段添加到 FormData 对象中。最后,我们使用 Axios 的 post
方法发送 POST 请求,将 FormData 作为请求体,并设置请求头的 Content-Type
为 multipart/form-data
。请求成功后,可以通过 response.data
获取响应数据。
请注意,以上代码中的 file
、name
和 data
是示例变量,需要根据实际情况替换为具体的值。另外,如果需要在请求中添加其他的字段或文件,可以继续使用 formData.append()
方法添加到 FormData 对象中。