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
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; |