import axios from 'axios'
import ElementUI from 'element-ui';
import QS from 'qs';
import router from '../router/index';
axios.defaults.withCredentials=true;
if (process.env.NODE_ENV === 'development') {
axios.defaults.baseURL = '/api'
} else if (process.env.NODE_ENV === 'production') {
axios.defaults.baseURL = ''
}
axios.defaults.timeout = 10000
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'
axios.interceptors.response.use(
response => {
if (response.status === 200) {
return Promise.resolve(response);
} else {
return Promise.reject(response);
}
},
error => {
if(error.response.status){
switch(error.response.status){
case 401:
router.push({path:'/login'});
break;
case 403:
ElementUI.Notification({
title: '提示',
message: "登陸過期,請重新登錄",
type: 'warning'
});
setTimeout(()=>{
router.push({path:'/login'})
},1000);
break
case 404:
ElementUI.Notification({
title: '提示',
message: "網絡請求不存在",
type: 'warning'
});
break
default:
ElementUI.Notification({
title: '提示',
message: error.response.data.errMsg,
type: 'warning'
});
}
return Promise.reject(error.response)
}
}
);
export function get(url, params){
return new Promise((resolve, reject) =>{
axios.get(url+params)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
export function post(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
api的統一管理
import { get, post } from './http'
export const login = p => post('pellet/login', p);
export const client_findByList = p => get('client/findByList', p);
api的使用
import {login,client_findByList} from '@/request/api'
login({
username:this.param.username,
password:this.param.password
}).then(res=>{
})
client_findByList(id).then(res=>{
})