Newer
Older
CloudBrainNew / src / utils / request.js
StephanieGitHub on 4 Feb 2021 1 KB first commit
import axios from 'axios'
import store from '@/store'
import router from '@/router'
import { getToken } from '@/utils/auth'

const service = axios.create({
  baseURL: store.state.baseURL, // url = base url + request url
  // withCredentials: false, // send cookies when cross-domain requests
  timeout: 30000 // request timeout
})

// 请求拦截
service.interceptors.request.use(
  config => {
    // let url = config.url
    // store.dispatch('showloader');
    config.headers['Content-Type'] = 'application/json;charset=UTF-8'

    // let token = getToken();
    // if (config.url.indexOf('/videoService/accounts/authorize') != -1) {
    //   config.headers['X-Subject-Token'] = token
    // }
    if (config.method === 'get') {
      config.params = {
        _t: Date.parse(new Date()) / 1000,
        ...config.params
      }
    }
    return config
  },
  error => {
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    store.dispatch('hideloader')

    const res = response.data
    switch (res.status) {
      case 1000: // 登陆过期
        localStorage.clear()
        // Toast.message('登陆失效,请重新登陆');
        router.replace('/login')
        break
      case 999: // 用户不存在
        localStorage.clear()
        router.replace('/login')
        // Toast.message(res.msg);
        break
      case 997: // 用户冻结
        router.replace('/login')
        // Toast.message(res.msg);
        break
    }
    return res
  },
  error => {
    store.dispatch('hideloader')
    console.log('err' + error) // for debug
    // Toast.message('网络错误');
    return Promise.reject(error)
  }
)

export default service