|
import axios from 'axios' |
|
import message from '@/utils/message' |
|
|
|
const instance = axios.create({ timeout: 1000 * 300 }) |
|
|
|
|
|
instance.interceptors.request.use( |
|
config => { |
|
const token = localStorage.getItem('pptist_token') |
|
if (token) { |
|
config.headers.Authorization = `Bearer ${token}` |
|
} |
|
return config |
|
}, |
|
error => { |
|
return Promise.reject(error) |
|
} |
|
) |
|
|
|
|
|
instance.interceptors.response.use( |
|
response => { |
|
if (response.status >= 200 && response.status < 400) { |
|
return Promise.resolve(response.data) |
|
} |
|
message.error('未知的请求错误!') |
|
return Promise.reject(response) |
|
}, |
|
error => { |
|
if (error && error.response) { |
|
const status = error.response.status |
|
|
|
|
|
if (status === 401) { |
|
localStorage.removeItem('pptist_token') |
|
localStorage.removeItem('pptist_user') |
|
message.error('登录已过期,请重新登录') |
|
|
|
window.location.href = '/login' |
|
return Promise.reject('Authentication failed') |
|
} |
|
|
|
if (status >= 400 && status < 500) { |
|
const errorMsg = error.response.data?.error || error.message |
|
message.error(errorMsg) |
|
return Promise.reject(errorMsg) |
|
} |
|
else if (status >= 500) { |
|
const errorMsg = error.response.data?.error || '服务器内部错误' |
|
message.error(errorMsg) |
|
return Promise.reject(errorMsg) |
|
} |
|
|
|
message.error('服务器遇到未知错误!') |
|
return Promise.reject(error.message) |
|
} |
|
message.error('连接到服务器失败 或 服务器响应超时!') |
|
return Promise.reject(error) |
|
} |
|
) |
|
|
|
export default instance |