axiosCfg.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //Http配置
  2. import Axios from 'axios'
  3. import {
  4. Message
  5. } from 'element-ui'
  6. import router from "../../router"
  7. import TokenManager from "./TokenManager"
  8. Axios.defaults.timeout = 10000; // 超时时间
  9. Axios.defaults.headers['verify'] = 'bms'; // 验证
  10. Axios.defaults.headers['Content-Type'] = `application/x-www-form-urlencoded`;
  11. /**
  12. * 拦截http请求
  13. */
  14. Axios.interceptors.request.use(config => {
  15. // 判断是否存在token,如果存在的话,则每个http header都加上token
  16. try {
  17. const obj = JSON.parse(TokenManager.getToken());
  18. config.headers['token'] = obj.token;
  19. } catch {
  20. return config;
  21. }
  22. return config;
  23. });
  24. /**
  25. * 拦截http响应
  26. */
  27. Axios.interceptors.response.use(res => {
  28. const status = res.data.status; //状态码
  29. switch (status) {
  30. case 300: //警告
  31. Message.warning({
  32. message: res.data.msg
  33. });
  34. return reject(res);
  35. case 401: //权限不足
  36. Message.warning({
  37. message: "验证信息过期,请重新登录",
  38. duration: 5000
  39. });
  40. router.replace("/login");
  41. return reject(res);
  42. //服务器错误
  43. case 500:
  44. Message.error({
  45. message: "服务器开小差了"
  46. });
  47. return reject(res);
  48. default:
  49. return res.data;
  50. }
  51. }, error => {
  52. Message.error("接口异常");
  53. });
  54. export default Axios