import Vue from 'vue';
import axios from 'axios'
import store from '../vuex/store'
import router from '../router'
Vue.prototype.$ajax = axios;
axios.interceptors.request.use(
config => {
const language = storage.get('language',{})
const languageid = language.languageid || 0
if((config.url).indexOf('languageid') === -1){
const index = (config.url).indexOf('?')
config.url = config.url + (index > -1 ? '&' : '?') + 'languageid=' + languageid
}
// const noCancelArr = ['UserSetting','Save','Fields']
// let noCancelFlag = noCancelArr.some( item => {
// return (config.url).indexOf(item) > -1
// })
// if(!noCancelFlag){
// config.cancelToken = new axios.CancelToken(cancel => {
// axiosPromiseArr.push({cancel})
// })
// }
var user_token = sessionStorage.getItem("user_token");
if (user_token) {
config.headers.UserToken = user_token;
config.headers.Authorization = `Bearer ${user_token}`;
}
return config;
},
err => {
alert("服务超时,重试")
return Promise.reject(err);
});
axios.interceptors.response.use(
response => {
return response;
},
error => {
if(axios.isCancel(error)) {
console.log('请求取消')
return new Promise(() => {});
}else {
if (error.response) {
switch (error.response.status) {
case 401:
//返回 401 清除token信息并跳转到登录页面
router.replace({
path: '/LogIn'
})
}
}
return Promise.reject(error) // 返回接口返回的错误信息
}
});
export default axios;