参考博客:Content-Type 详解、Content-Type的理解
HTTP请求头与响应头中含有的Content-Type字段,用于规定传输数据在发送与接受时,服务器与客户端对数据的如何解析
常用的三种类型:
- application/x-www-form-urlencoded:form表单默认提交方式,以键值对的形式传递参数,如:a=1&b=2(序列化),支持GET/POST请求
- multipart/form-data:常用于文件上传,传递二进制数据,请求体被分割成多部分,每部分使用 --boundary分割
- application/json:json字符串形式传递
如果后端定义的Content-Type=application/x-www-form-urlencoded,则需要在前端项目中可以引入qs模块对post请求发送的json数据进行序列化处理,否则后端将接收不到错误
import axios from 'axios'
import qs from 'qs'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
export function post(url, params) {
return new Promise((resolve, reject) => {
console.log(params) // {a: 1, b: 2}
console.log(qs.stringify(params)) // a=1&b=2
axios.post(url, qs.stringify(params))
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err.data)
})
})
}