wanghousheng 1 year ago
parent d8098aadf8
commit 716b0ac3f7
  1. 88
      src/utils/request.js

@ -16,11 +16,11 @@ const service = axios.create({
// 服务端api地址 // 服务端api地址
// baseURL: process.env.NODE_ENV === 'production' ? publicConfig.BASE_API : process.env.VUE_APP_API_BASE_URL, // baseURL: process.env.NODE_ENV === 'production' ? publicConfig.BASE_API : process.env.VUE_APP_API_BASE_URL,
baseURL: publicConfig.BASE_API, baseURL: publicConfig.BASE_API,
timeout: 60 * 1000 // 请求超时时间,60秒, 如果上传大文件需要更长 timeout: 60 * 1000, // 请求超时时间,60秒, 如果上传大文件需要更长
}) })
// 接口请求拦截 // 接口请求拦截
service.interceptors.request.use(config => { service.interceptors.request.use((config) => {
// 设置每个请求的Content-Type // 设置每个请求的Content-Type
// config.headers['Content-Type'] = 'application/json;charset=utf-8' // config.headers['Content-Type'] = 'application/json;charset=utf-8'
@ -36,54 +36,54 @@ service.interceptors.request.use(config => {
let notLoggedMessage = false let notLoggedMessage = false
// 接口响应拦截 // 接口响应拦截
service.interceptors.response.use((response) => { service.interceptors.response.use(
const result = response.data (response) => {
if (!isObject(result)) { const result = response.data
const error = { message: '服务端api返回的数据格式不正确' } if (!isObject(result)) {
return Promise.reject(error) const error = { message: '服务端api返回的数据格式不正确' }
} return Promise.reject(error)
// result.status [ 200正常 500有错误 401未登录 403没有权限访问 ] }
// api报错信息 // result.status [ 200正常 500有错误 401未登录 403没有权限访问 ]
if (result.status === 500) { // api报错信息
message.error(result.message, 1.8) if (result.status === 500) {
return Promise.reject(result) message.error(result.message, 1.8)
} return Promise.reject(result)
// 鉴权失败: 未登录 }
if (result.status === 401) { // 鉴权失败: 未登录
if (!notLoggedMessage) { if (result.status === 401) {
notLoggedMessage = true if (!notLoggedMessage) {
store.dispatch('Logout').then(() => { notLoggedMessage = true
notification.error({ store.dispatch('Logout').then(() => {
key: 'notLoggedMessage', notification.error({
message: '错误', key: 'notLoggedMessage',
description: result.message, message: '错误',
duration: 3 description: result.message,
duration: 3,
})
setTimeout(() => window.location.reload(), 1500)
}) })
setTimeout(() => window.location.reload(), 1500) }
}) return Promise.reject(result)
} }
return Promise.reject(result) return result
},
(error) => {
// 网络请求出错
const errMsg = ((error.response || {}).data || {}).message || '请求出现错误,请稍后再试'
notification.error({
message: '网络请求出错',
description: errMsg,
duration: 3,
})
return Promise.reject(error)
} }
return result )
}, (error) => {
// 网络请求出错
const errMsg = ((error.response || {}).data || {}).message || '请求出现错误,请稍后再试'
notification.error({
message: '网络请求出错',
description: errMsg,
duration: 3
})
return Promise.reject(error)
})
const installer = { const installer = {
vm: {}, vm: {},
install (Vue) { install(Vue) {
Vue.use(VueAxios, service) Vue.use(VueAxios, service)
} },
} }
export { export { installer as VueAxios, service as axios }
installer as VueAxios,
service as axios
}

Loading…
Cancel
Save