vue-axios整理
- 安装cnpm install axios
- 在main.js里面,拦截器
- import axios from ‘axios’;
- Vue.prototype.$axios = axios;
拦截器请求信息
axios.interceptors.request.use(function(config) {
Vue.$vux.loading.show({
text: '正在疯狂加载...'
});
config.headers.Authorization = ************; // 添加token
return config;
}, function(error) {
errfun(Vue, 0);
console.log(error);
});
拦截器响应信息
axios.interceptors.response.use((response) => {
const data = response.data;
let timer;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
Vue.$vux.loading.hide();
}, 1000);
if (!data.error.code) {
return data.result;
} else {
errfun(Vue, router, data.error.code, data.error.message);
}
}, (err) => {
console.log(err);
});
- 封装axios axios.js
import axios from 'axios';
export default function axiosAjax(config) {
return new Promise((resolve, reject) => {
axios(config).then((result) => {
resolve(result);
}).catch((err) => {
console.log(err);
});
});
}
- 调用 import axiosAjax from ‘@/common/js/axios’;
export function getWechatUserInfo(url, code) {
const params = {
code: code
};
const configParams = {
method: 'get',
url: allport.getWechatUserInfo + '/' + url+ '/userinfo',
params: params
};
return axiosAjax(configParams);
}