server.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // 引入axios
  2. // import router from './../../router'
  3. import Vue from 'vue'
  4. // import promise from 'es6-promise'
  5. import axios from 'axios'
  6. import canvasConfig from '../config'
  7. // import Cookies from 'js-cookie'
  8. // import localStorage from '../storage/localStorage'
  9. // promise.polyfill()
  10. const service = axios.create({
  11. headers: {
  12. 'X-Requested-With': 'XMLHttpRequest'
  13. },
  14. withCredentials: true,
  15. timeout: 20000 // 请求超时 20s
  16. })
  17. // 请求拦截器
  18. service.interceptors.request.use(config => {
  19. // 是否为当前的请求加上请求头 token
  20. const token = canvasConfig.getToken()
  21. if (token) {
  22. if(canvasConfig.typeId === 1){
  23. config.headers['Authorization-admin'] = token
  24. } else if(canvasConfig.typeId === 3){
  25. config.headers['Authorization-business'] = token
  26. } else {
  27. config.headers['Authorization'] = token
  28. }
  29. }
  30. return config
  31. }, error => {
  32. return Promise.reject(error)
  33. })
  34. // 响应拦截器
  35. service.interceptors.response.use(
  36. (response) => {
  37. if (response.data.code && response.data.code !=='200' && response.data.message) {
  38. Vue.prototype.$message.error(response.data.message)
  39. }
  40. return response
  41. },
  42. err => {
  43. // 失败响应
  44. if (err && err.response) {
  45. switch (err.response.status) {
  46. case 400:
  47. err.message = '请求无效,请检查参数是否正确!'
  48. break
  49. case 401:
  50. err.message = '未经授权,访问被拒!'
  51. break
  52. case 403:
  53. err.message = '拒绝访问!'
  54. break
  55. case 404:
  56. err.message = `地址不存在!`
  57. break
  58. case 408:
  59. err.message = '请求超时!'
  60. break
  61. case 500:
  62. err.message = '系统错误!'
  63. break
  64. case 501:
  65. err.message = '该方法未实现!'
  66. break
  67. case 502:
  68. err.message = '网关出错!'
  69. break
  70. case 503:
  71. err.message = '服务不可用!'
  72. break
  73. case 504:
  74. err.message = '网关请求超时'
  75. break
  76. case 505:
  77. err.message = 'HTTP版本不受支持'
  78. break
  79. default:
  80. }
  81. if (err.response.data.error) {
  82. err.message = err.response.data.error
  83. }
  84. Vue.prototype.$message.closeAll()
  85. Vue.prototype.$message.error(err.message)
  86. // router.push({name: 'error', params: {message: err.message, status: err.response.status}})
  87. }
  88. return Promise.reject(err)
  89. }
  90. )
  91. export default service