http.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import axios from 'axios'
  2. // const root = '/apis'
  3. const root = 'http://139.159.225.37:85/'
  4. // 配置请求域名
  5. axios.defaults.baseURL = root
  6. const configure = (Vue, router, { Message }) => {
  7. axios.interceptors.request.use(function (config) {
  8. // config.data = qs.stringify(config.data)
  9. return config
  10. }, function (error) {
  11. // 对请求错误做些什么
  12. return Promise.reject(error)
  13. })
  14. // 配置response拦截器
  15. axios.interceptors.response.use(
  16. response => {
  17. let data = response.data
  18. let code = Number(data)
  19. if (data.code !== 200) {
  20. Message({
  21. type: 'error',
  22. message: data.msg
  23. })
  24. return Promise.reject(data)
  25. }
  26. switch (code) {
  27. case -100:
  28. break
  29. case -10:
  30. Message({
  31. type: 'error',
  32. message: '登陆状态失效,请重新登陆'
  33. })
  34. router.replace({
  35. name: 'login'
  36. })
  37. break
  38. case -101:
  39. Message({
  40. type: 'error',
  41. message: '服务器异常,请稍后再试!'
  42. })
  43. break
  44. case -102:
  45. Message({
  46. type: 'error',
  47. message: '缺少必要参数!'
  48. })
  49. break
  50. }
  51. return data
  52. },
  53. error => {
  54. if (error.response) {
  55. switch (error.response.status) {
  56. case 500:
  57. Message({
  58. customClass: 'system-err',
  59. type: 'error',
  60. message: '服务器错误!'
  61. })
  62. break
  63. }
  64. }
  65. return Promise.reject(error.response.data)
  66. }
  67. )
  68. Vue.prototype.$http = axios
  69. }
  70. export default axios
  71. export { configure, root }