问题: 有些时候,我们需要使用 axios 来发送form表单类型的数据,这个时候只修改 method 或者请求头(headers)是没有效果的。
解决方式: js里面有一个 FormData 的构造函数,根据这个构造函数就可以创建一个 form 表单类型的数据,如下:
var formData = new FormData(); // 创建一个formData对象
var value = '这是参数的值';
formData.append("key1",value); // 给这个对象添加键值对
formData.append("key2",value);
formData.delete("key1"); // 删除formData的key1
// 现在就可以把这个formData通过post请求发给后端了,此时后端接收到的就是form表单类型的数据
axios({
url:"xxx",
method:"post",
data:formData,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
})
FormData 的详细 api 可以在 MDN 上面查看