http.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import axios from 'axios'
  2. import Vue from 'vue'
  3. import router from '../router'
  4. var isProduction = process.env.NODE_ENV === 'production'
  5. // const serverName = isProduction ? '' : 'http://192.168.0.207:7081/'
  6. const serverName = isProduction ? '' : 'https://admin.zhifangbao.com/'
  7. const vue = new Vue()
  8. axios.defaults.baseURL = serverName
  9. axios.defaults.headers['X-Requested-with'] = 'XMLHttpRequest'
  10. // 拦截请求,做登陆,或head处理
  11. axios.interceptors.request.use(
  12. function (config) {
  13. if (config.method === 'post') {
  14. config.data = {
  15. ...config.data,
  16. rnd: Math.random()
  17. }
  18. } else if (config.method === 'get') {
  19. config.params = {
  20. rnd: Math.random(),
  21. ...config.params
  22. }
  23. }
  24. return config
  25. }, function (error) {
  26. // 对请求错误做些什么
  27. return Promise.reject(error)
  28. }
  29. )
  30. // 拦截返回,做错误统一处理
  31. axios.interceptors.response.use(
  32. response => {
  33. let data = response.data
  34. let code = Number(response.data.code)
  35. switch (code) {
  36. case -1:
  37. break
  38. case 202:
  39. if (window.localStorage.getItem('zfb_token')) {
  40. window.localStorage.setItem('zfb_token', '')
  41. vue.$alert('登录状态失效,请重新登录', '提示', {
  42. confirmButtonText: '确定',
  43. callback: function () {
  44. router.push('/login')
  45. }
  46. })
  47. }
  48. break
  49. case 500:
  50. vue.$alert(data.message, '提示', {
  51. confirmButtonText: '确定',
  52. callback: function () {
  53. }
  54. })
  55. break
  56. case 0:
  57. break
  58. }
  59. // tryHideFullScreenLoading()
  60. return data
  61. },
  62. error => {
  63. if (error.response) {
  64. switch (error.response.status) {
  65. case 500:
  66. vue.$alert(error.response.message, '提示', {
  67. confirmButtonText: '确定',
  68. callback: action => {
  69. }
  70. })
  71. break
  72. }
  73. }
  74. return Promise.reject(error)
  75. }
  76. )
  77. export { serverName, axios }