描述
Axios是Vue官方推荐的HTTP请求工具,封装了所有的请求方式和相关的功能,如拦截器等配置,但是默认发送的头部是application/json,form-data提交需要在请求中进行配置
实现
使用Qs在拦截器中进行统一的数据格式转换
npm install qs
在拦截器中配置
import Qs from 'qs'
// axios配置
const $axios = axios.create({
baseURL: api,
timeout: 1000 * 30, // 请求超时,秒
// 携带cookie
withCredentials: true,
headers: {'content-type': 'application/x-www-form-urlencoded'} // 请求数据类型 默认application/json
})
// 请求拦截器
$axios.interceptors.request.use(config => {
config.data = Qs.stringify(config.data)
return config;
}, function (error) {
// 请求错误的执行
return Promise.reject(error);
});
Vue.prototype.axios = $axios