1.遇到问题:http请求415错误Unsupported Media Type
提交媒体类型不对,然后更改headers的Constent-Type,同时提交的数据类型要是Json字符串
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 30 * 1000,
transformRequest: [function(data) {
// 提交的数据类型要是Json字符串
return JSON.stringify(data)
}
]
})
service.interceptors.request.use(
config => {
// 请求之前对request设置,更改headers的Constent-Type
config.headers['Content-Type'] = 'application/json'
return config
},
error => {
}
)
常用的两种数据格式转换方式
而qs.stringify()将对象 序列化成URL的形式,以&进行拼接。
JSON.stringify()是正常类型的JSON
2.上传文件接口同时需要传参数和文件时,比如
params: {
name: 'xiaoming',
file: (binary)
}
可以这么写:
let fd = new FormData()
fd.append('name', 'xiaoming')
fd.append('file', data) // data就是文件数据,关于文件上传详细见另外的文章
然后记得请求接口的headers设置
'Content-Type': 'multipart/form-data;'
然后请求的数据格式不需要转换,直接return就好了