有没有办法在使用axios提交FormData时修改它的content-type为application/json或其他类型?如果可以,应该如何修改?|使用axios提交FormData时,可以通过手动设置headers来修改content-type,但是在设置为multipart/form-data时却无法有效修改。这是因为在使用FormData时,浏览器会自动将content-type设置为multipart/form-data,无法直接修改。但可以通过将数据先转为JSON格式,然后手动修改content-type为application/json来实现提交Json格式的数据。具体代码示例如下:
let formData = new FormData();
formData.append('name', '张三');
formData.append('age', 18);
let jsonData = {};
for(let key of formData.keys()){
jsonData[key] = formData.get(key);
}
axios.post(url, JSON.stringify(jsonData), {
headers: {
'Content-Type': 'application/json'
}
}).then(res => {
console.log(res);
})
将FormData转成JSON,再手动设置content-type为application/json,即可提交JSON格式的数据。