Axios 提供了从浏览器创建 FormData 的方式,可以在 POST 请求发送 FormData 的同时,携带其它字段,比如表单中的文本输入框值。示例代码如下:
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('username', 'Tom');
axios.post('/api/upload', formData)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
在以上代码中,formData 通过 append 方法添加了 file 和 username 两个字段,file 数据来源于一个 type 为 file 的 input 元素。axios.post 方法的第二个参数即为 formData 对象。
需要注意的是,当使用 FormData 时,Content-Type 请求头会自动设置为 multipart/form-data。另外,如果使用的是 Node.js 环境,需要使用第三方库,比如 form-data,来创建 FormData 对象。