| | |
| | |
|
| | | // request拦截器
|
| | | service.interceptors.request.use(config => {
|
| | | config.headers = config.headers || {} |
| | | // 是否需要设置 token
|
| | | const isToken = (config.headers || {}).isToken === false
|
| | | const isToken = config.headers.isToken === false |
| | | // 是否需要防止数据重复提交
|
| | | const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
|
| | | const isRepeatSubmit = config.headers.repeatSubmit === false |
| | | if (getToken() && !isToken) {
|
| | | config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
|
| | | }
|
| | |
| | | return config
|
| | | }, error => {
|
| | | console.log(error)
|
| | | Promise.reject(error)
|
| | | return Promise.reject(error) |
| | | })
|
| | |
|
| | | // 响应拦截器
|
| | | service.interceptors.response.use(res => {
|
| | | // 未设置状态码则默认成功状态
|
| | | const code = res.data.code || 200
|
| | | const handleAuthError = (res.config && res.config.headers && res.config.headers.handleAuthError) !== false |
| | | // 获取错误信息
|
| | | const msg = errorCode[code] || res.data.msg || errorCode['default']
|
| | | // 二进制数据则直接返回
|
| | |
| | | return res.data
|
| | | }
|
| | | if (code === 401) {
|
| | | if (!handleAuthError) { |
| | | return Promise.reject(new Error(msg)) |
| | | } |
| | | if (!isRelogin.show) {
|
| | | isRelogin.show = true
|
| | | ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
|