axios.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import axios from 'axios';
  2. import { Message, MessageBox } from 'element-ui';
  3. axios.defaults.baseURL = process.env.BASE_API
  4. const service = axios.create({
  5. withCredentials: false,
  6. timeout: 60000,
  7. headers: {
  8. 'Content-Type': 'application/json',
  9. }
  10. })
  11. service.interceptors.request.use(
  12. config => {
  13. return config
  14. },
  15. error => {
  16. // Do something with request error
  17. Promise.reject(error)
  18. }
  19. )
  20. // response interceptor
  21. service.interceptors.response.use(
  22. response => {
  23. const res = response.data;
  24. if (res.code == 200) {
  25. return res
  26. }
  27. else if (res.code == '50014') {
  28. //登录超时或被登出,弹确认框,用户确认后,跳转到登录页面
  29. MessageBox({
  30. message: "当前登录已失效或异地登录,请重新登录",
  31. type: 'error',
  32. duration: 3 * 1000,
  33. }).then(() => {
  34. sessionStorage.clear();
  35. localStorage.clear();
  36. window.location.href = "/";
  37. }).catch(err => {
  38. })
  39. } else if (res.code == "3100" || res.code == "3101") {
  40. return res;
  41. }
  42. else {
  43. Message({
  44. message: res.repMsg || res.message,
  45. type: 'error',
  46. duration: 3 * 1000
  47. })
  48. return res;
  49. }
  50. },
  51. error => {
  52. var errorStatus = error.response.code;
  53. var errorData = error.response.data;
  54. var messageTxt = "";
  55. if (errorStatus != 200) {
  56. messageTxt = "服务器内部错误,请联系管理员";
  57. } else {
  58. messageTxt = '失败原因:' + errorData.code + '--' + errorData.repMsg;
  59. }
  60. Message({
  61. message: messageTxt,
  62. type: 'error',
  63. duration: 5 * 1000
  64. })
  65. }
  66. )
  67. export default service