http.js 2.0 KB

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