1、问题描述
在axios封装请求方法中设置了请求头Content-Type
,request headers中没有出现
// create an axios instance
// 创建 axios 实例
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
timeout: 20000, // request timeout
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'x-requested-with': 'XMLHttpRequest',
'X-AUTO-FP-JWT_ID': '402894b48210dac901821e8a2e1a4f93',
'X-AUTO-FP-PLATE-FORM': 'desktop',
},
})
2、问题原因
npm下axios的源码中,当未设置requestData的时候会删掉Content-Type的设置
3、解决方法
没有参数时,设置参数不为undefined(即:不为false)
/**
* request interceptor 发送请求时拦截
*/
service.interceptors.request.use(
config => {
if (!config.data) {
config.data = true // 解决请求没有参数时添加不上Content-Type问题
}
// config.headers['Content-type'] = 'application/json;charset=UTF-8'
config.headers['Authorization-Idaas'] = getToken()
return config
},
error => {
// do something with request error
return Promise.reject(error)
}
)