1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import Axios from 'axios'
- import { Message } from 'view-design'
- import { getToken, setToken, getAdmin } from 'libs/token'
- // 根路径
- import baseURL from 'config/url'
- const service = Axios.create({
- baseURL,
- // withCredentials: true, // 当跨域请求时发送cookie
- timeout: 100000
- })
- // 保存调用栈
- // let time = null
- // 设置请求拦截器,每个请求都会到这里
- service.interceptors.request.use(
- config => {
- if (getToken()) {
- // 给每个请求都加上后台需要的信息,可以自定义
- config.params = Object.assign({
- token: getToken(),
- user_id: getAdmin().admin_id
- }, config.params || {})
- }
-
- // 在发送请求之前还能做点东西
- // 拦截器函数, 要求返回config参数
- return config
- }, error => {
- // 当报错的时候可以打印日志
- console.log(error)
- return Promise.reject(error)
- }
- )
- // 设置响应拦截器,每个响应都会到这里
- service.interceptors.response.use(
- response => {
- // 当获得响应数据,可以根据响应的状态码判断后台状态
- const { data } = response
- // 处理后端响应数据状态码不在预设值得情况下,处理异常,这里预设值为2000
- if (data.code && data.code != 0) {
- // 再进一步判断
- if (data.code == 3101 || data.code == 3005) {
- data.code == 3005 && Message.error({ content: 'token过期,请重新登录' })
- app.$router.push('/login')
- setToken('')
- } else {
- // 非特定情况
- if (data.msg) Message.error({ content: data.msg, background: true })
- }
- // 抛出错误信息
- return Promise.reject(data)
- } else {
- return Promise.resolve(data)
- }
- }, error => {
- console.log('err' + error) // 帮助debug
- // Message.error({
- // content: '接口报错了,请稍后重试~',
- // background: true
- // })
- return Promise.reject(error)
- }
- )
- export default service
|