2 changed files with 149 additions and 93 deletions
@ -1,110 +1,139 @@ |
|||
import axios from 'axios' |
|||
import { |
|||
MessageBox, |
|||
Message |
|||
MessageBox, |
|||
Message |
|||
} from 'element-ui' |
|||
import store from '@/store' |
|||
import { |
|||
getToken, |
|||
getStorage |
|||
getToken, |
|||
getStorage |
|||
} from '@/utils/auth' |
|||
|
|||
import router from '@/router' |
|||
// create an axios instance
|
|||
const service = axios.create({ |
|||
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
|||
// withCredentials: true, // send cookies when cross-domain requests
|
|||
timeout: 30000 // request timeout
|
|||
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
|
|||
// withCredentials: true, // send cookies when cross-domain requests
|
|||
timeout: 30000 // request timeout
|
|||
}) |
|||
|
|||
var isLoging = false |
|||
// request interceptor
|
|||
service.interceptors.request.use( |
|||
config => { |
|||
// do something before request is sent
|
|||
config => { |
|||
// do something before request is sent
|
|||
|
|||
// if (store.getters.token) {
|
|||
// // let each request carry token
|
|||
// // ['X-Token'] is a custom headers key
|
|||
// // please modify it according to the actual situation
|
|||
// config.headers['X-Token'] = getToken()
|
|||
// }
|
|||
if (getStorage()) { |
|||
// let each request carry token
|
|||
// ['X-Token'] is a custom headers key
|
|||
// please modify it according to the actual situation
|
|||
config.headers['token'] = getStorage() |
|||
} |
|||
return config |
|||
}, |
|||
error => { |
|||
// do something with request error
|
|||
console.log(error) // for debug
|
|||
return Promise.reject(error) |
|||
} |
|||
// if (store.getters.token) {
|
|||
// // let each request carry token
|
|||
// // ['X-Token'] is a custom headers key
|
|||
// // please modify it according to the actual situation
|
|||
// config.headers['X-Token'] = getToken()
|
|||
// }
|
|||
if (getStorage()) { |
|||
// let each request carry token
|
|||
// ['X-Token'] is a custom headers key
|
|||
// please modify it according to the actual situation
|
|||
config.headers['token'] = getStorage() |
|||
} |
|||
return config |
|||
}, |
|||
error => { |
|||
// do something with request error
|
|||
console.log(error) // for debug
|
|||
return Promise.reject(error) |
|||
} |
|||
) |
|||
|
|||
// response interceptor
|
|||
service.interceptors.response.use( |
|||
/** |
|||
* If you want to get http information such as headers or status |
|||
* Please return response => response |
|||
*/ |
|||
/** |
|||
* If you want to get http information such as headers or status |
|||
* Please return response => response |
|||
*/ |
|||
|
|||
/** |
|||
* Determine the request status by custom code |
|||
* Here is just an example |
|||
* You can also judge the status by HTTP Status Code |
|||
*/ |
|||
response => { |
|||
const res = response.data |
|||
const statusCode = response.status |
|||
console.log('statusCode>>>' + statusCode) |
|||
// if the custom code is not 20000, it is judged as an error.
|
|||
|
|||
|
|||
|
|||
if (statusCode !== 200) { |
|||
Message({ |
|||
message: res.msg || response.message || 'Error', |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
|
|||
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
|||
// if (statusCode === 401 || res.code === '5000' || res.code === 5000 || res.code === 50012 || res.code ===
|
|||
// 50014) {
|
|||
// // to re-login
|
|||
// MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
|
|||
// confirmButtonText: '重新登录',
|
|||
// cancelButtonText: '取消',
|
|||
// type: 'warning'
|
|||
// }).then(() => {
|
|||
// store.dispatch('logout').then(() => {
|
|||
// location.href = '/#/login'
|
|||
// // location.reload()
|
|||
// })
|
|||
// })
|
|||
// }
|
|||
return Promise.reject(new Error(res.message || 'Error')) |
|||
} else { |
|||
if (!res.success && res.success !== null && res.success !== undefined) { |
|||
Message({ |
|||
message: res.msg || 'Error', |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
} |
|||
|
|||
if (res.code === '5000') { |
|||
// to re-login
|
|||
console.log("aaa",isLoging); |
|||
|
|||
if (!isLoging) { |
|||
console.log("aaa2",isLoging); |
|||
isLoging = true |
|||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { |
|||
confirmButtonText: '重新登录', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
isLoging = false |
|||
router.push({ |
|||
path: '/login' |
|||
}) |
|||
done() |
|||
|
|||
}).catch(() => { |
|||
isLoging = false |
|||
}) |
|||
|
|||
/** |
|||
* Determine the request status by custom code |
|||
* Here is just an example |
|||
* You can also judge the status by HTTP Status Code |
|||
*/ |
|||
response => { |
|||
const res = response.data |
|||
const statusCode = response.status |
|||
console.log('statusCode>>>' + statusCode) |
|||
// if the custom code is not 20000, it is judged as an error.
|
|||
if (statusCode !== 200) { |
|||
Message({ |
|||
message: res.msg || response.message || 'Error', |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
} |
|||
} |
|||
|
|||
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
|||
if (statusCode === 401 || res.code === '5000' || res.code === 5000 || res.code === 50012 || res.code === |
|||
50014) { |
|||
// to re-login
|
|||
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { |
|||
confirmButtonText: '重新登录', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
store.dispatch('logout').then(() => { |
|||
location.href = 'http://120.46.131.15/#/login' |
|||
// location.reload()
|
|||
}) |
|||
}) |
|||
} |
|||
return Promise.reject(new Error(res.message || 'Error')) |
|||
} else { |
|||
if (!res.success && res.success !== null && res.success !== undefined) { |
|||
Message({ |
|||
message: res.msg || 'Error', |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
} |
|||
return res |
|||
} |
|||
}, |
|||
error => { |
|||
console.log('err' + error) // for debug
|
|||
Message({ |
|||
message: error.message, |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
return Promise.reject(error) |
|||
} |
|||
return res |
|||
} |
|||
}, |
|||
error => { |
|||
console.log('err' + error) // for debug
|
|||
Message({ |
|||
message: error.message, |
|||
type: 'error', |
|||
showClose: true, |
|||
duration: 5 * 1000 |
|||
}) |
|||
return Promise.reject(error) |
|||
} |
|||
) |
|||
|
|||
export default service |
|||
export default service |
Loading…
Reference in new issue