You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

64 lines
1.5 KiB

import axios from 'axios'
import {
message
} from 'antd'
import {
HashRouter
} from 'react-router-dom'
import {
getToken,
setToken,
removeToken
} from './token'
const router = new HashRouter()
const instance = axios.create({
baseURL: process.env.NODE_ENV === 'development' ? 'http://localhost:3000' : '/api',
headers: {
'Content-Type': 'application/json',
withCredentials: true,
'token': localStorage.getItem('token')
},
withCredentials: true,
timeout: 100000
})
localStorage.setItem('si', JSON.stringify({ eName: 'admin' }));
instance.interceptors.request.use(
config => {
let token = getToken();
if (token && token !== undefined && token !== "" && token !== "undefined") {
config.headers['Authorization'] = "Bearer " + token;
config.headers['token'] = token;
}
return config;
},
error => {
Promise.reject(error);
}
)
instance.interceptors.response.use(
response => {
const res = response.data;
if (res.code === 401) {
//尚未登录
removeToken();
router.history.push('/login');
}
if (res.code !== 0) {
message.open({ // notification
message: '失败',
content: res.message,
type: 'error'
});
return Promise.reject(res);
} else {
return res;
}
}
)
export default instance;