http.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import axios from 'axios'
  2. // 配置请求域名
  3. // let server = process.env.NODE_ENV === 'development' ? 'https://www.4dkankan.com/api' : '/api'
  4. let server = process.env.NODE_ENV === 'development' ? '/api' : 'https://test.4dkankan.com/api'
  5. axios.defaults.baseURL = server
  6. // axios.defaults.baseURL = '/api'
  7. // axios.defaults.baseURL = 'http://192.168.0.207:8066/api'
  8. axios.interceptors.request.use(function (config) {
  9. config.headers['Content-Type'] = 'application/json;charset=UTF-8'
  10. return config
  11. }, function (error) {
  12. return Promise.reject(error)
  13. })
  14. axios.setToken = function (token) {
  15. if (!token) {
  16. token = sessionStorage.getItem('token')
  17. }
  18. if (token) {
  19. axios.defaults.headers.common['token'] = token
  20. sessionStorage.setItem('token', token)
  21. }
  22. }
  23. axios.setToken()
  24. axios.removeToken = function (token) {
  25. delete axios.defaults.headers.common['token']
  26. sessionStorage.removeItem('token')
  27. }
  28. const notLogins = ['/sso/manager/login']
  29. function setHandle (router) {
  30. axios.interceptors.request.use(function (config) {
  31. if ((!config.headers.token && !config.headers.common.token) && !~notLogins.indexOf(config.url)) {
  32. router.replace('login')
  33. return false
  34. } else {
  35. return config
  36. }
  37. }, function (error) {
  38. return Promise.reject(error)
  39. })
  40. // 配置response拦截器
  41. axios.interceptors.response.use(
  42. response => {
  43. let data = response.data
  44. let code = data.code
  45. switch (code) {
  46. case 3002:
  47. case 3004:
  48. axios.removeToken()
  49. router.replace('login')
  50. break
  51. case 3001:
  52. router.replace('login')
  53. break
  54. }
  55. return data
  56. },
  57. error => {
  58. if (error.response) {
  59. switch (error.response.status) {
  60. case 500:
  61. // Message({
  62. // customClass: 'system-err',
  63. // type: 'error',
  64. // message: '服务器错误!'
  65. // })
  66. break
  67. }
  68. }
  69. return Promise.reject(error.response.data)
  70. }
  71. )
  72. }
  73. export { setHandle, server }
  74. export default axios