¶Ô±ÈÐÂÎļþ |
| | |
| | | import axios from 'axios' |
| | | import { Notification, MessageBox, Message } from 'element-ui' |
| | | import store from '@/store' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' |
| | | // å建axioså®ä¾ |
| | | const service = axios.create({ |
| | | // axiosä¸è¯·æ±é
ç½®æbaseURLé项ï¼è¡¨ç¤ºè¯·æ±URLå
Œ
±é¨å |
| | | baseURL: process.env.VUE_APP_BASE_API, |
| | | // è¶
æ¶ |
| | | timeout: 10000 |
| | | }) |
| | | // requestæ¦æªå¨ |
| | | service.interceptors.request.use( |
| | | config => { |
| | | if (getToken()) { |
| | | config.headers['Authorization'] = 'Bearer ' + getToken() // 让æ¯ä¸ªè¯·æ±æºå¸¦èªå®ä¹token è¯·æ ¹æ®å®é
æ
åµèªè¡ä¿®æ¹ |
| | | } |
| | | return config |
| | | }, |
| | | error => { |
| | | console.log(error) |
| | | Promise.reject(error) |
| | | } |
| | | ) |
| | | |
| | | // ååºæ¦æªå¨ |
| | | service.interceptors.response.use(res => { |
| | | const code = res.data.code |
| | | if (code === 401) { |
| | | MessageBox.confirm( |
| | | 'ç»å½ç¶æå·²è¿æï¼æ¨å¯ä»¥ç»§ç»çå¨è¯¥é¡µé¢ï¼æè
éæ°ç»å½', |
| | | 'ç³»ç»æç¤º', |
| | | { |
| | | confirmButtonText: 'éæ°ç»å½', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | } |
| | | ).then(() => { |
| | | store.dispatch('LogOut').then(() => { |
| | | location.reload() // 为äºéæ°å®ä¾åvue-router对象 é¿å
bug |
| | | }) |
| | | }) |
| | | } else if (code !== 200) { |
| | | Notification.error({ |
| | | title: res.data.msg |
| | | }) |
| | | return Promise.reject('error') |
| | | } else { |
| | | return res.data |
| | | } |
| | | }, |
| | | error => { |
| | | console.log('err' + error) |
| | | Message({ |
| | | message: error.message, |
| | | type: 'error', |
| | | duration: 5 * 1000 |
| | | }) |
| | | return Promise.reject(error) |
| | | } |
| | | ) |
| | | |
| | | export default service |