request.js 2.29 KB
import axios from 'axios'
import { Notification, MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
let protocol = window.location.protocol
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项,表示请求URL公共部分
  baseURL: protocol + process.env.VUE_APP_BASE_API,
  // 超时
  timeout: 6000000
})
// request拦截器
service.interceptors.request.use(
  config => {
    if (getToken()) {
      config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    }
    return config
  },
  error => {
    console.log(error)
    Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(res => {
  if (res.config.responseType === 'arraybuffer') { // 二进制流下载

  }
  const code = res.data.code
  if (code == undefined) {
    return res;
  }
  // if (code === 401) {
  //   // MessageBox.confirm(
  //   //   '登录状态已过期,您可以继续留在该页面,或者重新登录',
  //   //   '系统提示',
  //   //   {
  //   //     confirmButtonText: '重新登录',
  //   //     cancelButtonText: '取消',
  //   //     type: 'warning'
  //   //   }
  //   // ).then(() => {
  //   //   store.dispatch('LogOut').then(() => {
  //   //     location.reload() // 为了重新实例化vue-router对象 避免bug
  //   //   })
  //   // })
  // } else if (code !== 200) {
  //   if(res.data.data=='拒绝此用户角色访问'){
  //   //  alert(1)
  //   //  console.log(this.$router)
  //     window.location.href= window.location.protocol+"//"+window.location.host+"/404"
  //     window.location.reload;
  //    // location.reload() 
  //   //  this.$router.push({ path: "/404" });
  //    // this.$router.push('/404')
  //   }else{
  //     Notification.error({
  //       title: res.data.data
  //     })
  //     return Promise.reject('error')
  //   }
    
  // } else {
  //   return res.data
  // }
  return res.data
},
  error => {
    console.log('err' + error)

    // Message({
    //   message: error.message,
    //   type: 'error',
    //   duration: 5 * 1000
    // })
    return Promise.reject(error)
  }
)

export default service