axios.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* eslint-disable no-const-assign */
  2. import axios from 'axios'
  3. // import router from '../../src/router/index'
  4. import { Notify } from '@nutui/nutui'
  5. // 构建axios实例
  6. axios.create({
  7. baseURL: process.env.BASE_API,
  8. timeout: 10000
  9. })
  10. axios.interceptors.request.use(config => {
  11. const token = sessionStorage.getItem('token')
  12. if (token) {
  13. config.headers.Authorization = 'Bearer ' + token
  14. }
  15. return config
  16. },
  17. err => {
  18. return Promise.reject(err)
  19. })
  20. axios.interceptors.response.use(
  21. response => {
  22. if (response.data.errcode !== 0 || response.data.errcode === 403) {
  23. if (response.data.errmsg.cmd) {
  24. Notify.warn(response.data.errmsg.cmd)
  25. return false
  26. }
  27. Notify.warn(response.data.errmsg)
  28. return false
  29. }
  30. return response.data
  31. },
  32. error => {
  33. const { status, data } = error.response
  34. if (status === 401) {
  35. Notify.warn('请重新登录')
  36. // router.push('/login')
  37. return false
  38. }
  39. if (status === 500) {
  40. if (data.cmd) {
  41. Notify.warn(data.cmd)
  42. return false
  43. }
  44. if (data.errmsg) {
  45. Notify.warn(data.errmsg)
  46. return false
  47. }
  48. }
  49. Notify.warn(data.message || data.errmsg)
  50. return data
  51. }
  52. )
  53. export default axios