request.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import axios from 'axios'
  2. import { Message, MessageBox } from 'element-ui'
  3. import store from '@/store'
  4. import { getToken } from '@/utils/auth'
  5. // create an axios instance
  6. const service = axios.create({
  7. baseURL: process.env.BASE_API, // api 的 base_url
  8. timeout: 5000 // request timeout
  9. })
  10. // request interceptor
  11. service.interceptors.request.use(
  12. config => {
  13. // Do something before request is sent
  14. if (store.getters.token) {
  15. // 让每个请求携带token-- ['X-Litemall-Admin-Token']为自定义key 请根据实际情况自行修改
  16. config.headers['X-Litemall-Admin-Token'] = getToken()
  17. }
  18. return config
  19. },
  20. error => {
  21. // Do something with request error
  22. console.log(error) // for debug
  23. Promise.reject(error)
  24. }
  25. )
  26. // response interceptor
  27. service.interceptors.response.use(
  28. response => {
  29. const res = response.data
  30. if (res.errno === 501) {
  31. MessageBox.alert('系统未登录,请重新登录', '未登录', {
  32. confirmButtonText: '确定',
  33. type: 'error'
  34. }).then(() => {
  35. store.dispatch('FedLogOut').then(() => {
  36. location.reload()
  37. })
  38. })
  39. return Promise.reject('error')
  40. } else if (res.errno === 502) {
  41. MessageBox.alert('系统内部错误,请联系管理员维护', '错误', {
  42. confirmButtonText: '确定',
  43. type: 'error'
  44. })
  45. return Promise.reject('error')
  46. } else if (res.errno === 503) {
  47. MessageBox.alert('请求业务目前未支持', '警告', {
  48. confirmButtonText: '确定',
  49. type: 'error'
  50. })
  51. return Promise.reject('error')
  52. } else if (res.errno !== 0) {
  53. // 非5xx的错误属于业务错误,留给具体页面处理
  54. return Promise.reject(response)
  55. } else {
  56. return response
  57. }
  58. }, error => {
  59. console.log('err' + error)// for debug
  60. Message({
  61. message: '登录连接超时(后台不能连接,请联系系统管理员)',
  62. type: 'error',
  63. duration: 5 * 1000
  64. })
  65. return Promise.reject(error)
  66. })
  67. export default service