http.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import axios from 'axios'
  2. var isProduction = process.env.NODE_ENV === 'production'
  3. const serverName = isProduction ? '/' : 'http://192.168.0.245:8003/'
  4. const orginLink = window.location.origin
  5. axios.defaults.baseURL = serverName
  6. axios.defaults.headers['X-Requested-with'] = 'XMLHttpRequest'
  7. axios.interceptors.request.use(function (config) {
  8. config.headers['token'] = window.localStorage.getItem('webtoken')
  9. if (config.method === 'post') {
  10. config.data = {
  11. ...config.data,
  12. rnd: Math.random()
  13. }
  14. // config.data = qs.stringify(config.data)
  15. } else if (config.method === 'get') {
  16. config.params = {
  17. rnd: Math.random(),
  18. ...config.params
  19. }
  20. // config.params = qs.stringify(config.params)
  21. }
  22. return config
  23. }, function (error) {
  24. // 对请求错误做些什么
  25. return Promise.reject(error)
  26. })
  27. // 配置response拦截器
  28. axios.interceptors.response.use(
  29. response => {
  30. let data = response.data
  31. let code = Number(response.data.code)
  32. switch (code) {
  33. case -1:
  34. alert(data.msg)
  35. break
  36. case 4500:
  37. break
  38. case 5001:
  39. window.localStorage.setItem('webtoken', '')
  40. window.localStorage.setItem('webuserInfo', '')
  41. return alert('请登录后再操作')
  42. case 5002:
  43. window.localStorage.setItem('webtoken', '')
  44. window.localStorage.setItem('webuserInfo', '')
  45. return alert('请登录后再操作')
  46. case 500:
  47. break
  48. case 0:
  49. break
  50. default:
  51. alert(data.msg)
  52. break
  53. }
  54. // tryHideFullScreenLoading()
  55. return data
  56. },
  57. error => {
  58. window.localStorage.setItem('webtoken', '')
  59. window.localStorage.setItem('webuserInfo', '')
  60. if (error.response) {
  61. switch (error.response.code) {
  62. case 500:
  63. window.localStorage.setItem('webtoken', '')
  64. window.localStorage.setItem('webuserInfo', '')
  65. break
  66. }
  67. }
  68. return Promise.reject(error)
  69. }
  70. )
  71. export { serverName,orginLink, axios }