1
0
Fork 0
5g-track/src/utils/request.js

53 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import axios from 'axios'
import router from '@/router'
import { vm } from '@/main.js'
import { globalSuccessToast } from '@/settings'
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
withCredentials: true, // 设置是否在请求中携带cookie
timeout: 30000 // 请求超时时间
})
// request interceptor请求拦截器
service.interceptors.request.use(
config => {
vm.$Loading.show()
// 给config统一配置属性
return config
},
error => {
return Promise.reject(error)
}
)
//response (响应拦截器)
service.interceptors.response.use(
response => {
vm.$Loading.hidden()
const res = response.data
const code = response.status
if (code !== 200) {
vm.$Toast.error(res.msg)
return Promise.reject(new Error(res.msg || 'Error'))
} else {
if (globalSuccessToast && res.code == 0) { //全局成功提示
// vm.$Toast.success('查询成功!') //暂时不要
}
return res
}
},
error => {
vm.$Loading.hidden()
if (error.response.status && error.response.status == 401) { //拦截401代表登陆失效触发页面刷新后再触发路由拦截拦截到重新登录
// 401一般是权限问题或者登录失效
// router.push('/login') //如果项目存在登录验证,应该在这里返回登录页面重新登录;
console.log('response status is 401')
}
vm.$Toast.error(error)
return Promise.reject(error) //请求错误不return出去直接在这里处理toast
}
)
export default service