健康同学微信公众号h5项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 line
2.6KB

  1. /*
  2. * @Author: linwl
  3. * @Date: 2020-04-13 14:47:59
  4. * @LastEditTime: 2023-06-15 10:32:04
  5. * @LastEditors: JinxChen
  6. * @Description: axios请求配置
  7. * @FilePath: \ParentWeb\src\config\request.js
  8. */
  9. import axios from 'axios';
  10. import router from '@/router';
  11. import { baseApi } from '@/config';
  12. import prefix from '@/store/prefix';
  13. const httpProxyPrefix = baseApi;
  14. // create an axios instance axios.create创建一个实例
  15. const service = axios.create({
  16. // baseURL: process.env.VUE_APP_BASE_API,
  17. baseURL: httpProxyPrefix
  18. // timeout: 5000 // request timeout
  19. });
  20. const errorHandler = error => {
  21. // const status = get(error, 'response.status');
  22. const status = error.response.status;
  23. console.log(status);
  24. switch (status) {
  25. case 400:
  26. error.message = '请求错误';
  27. break;
  28. case 401:
  29. error.message = '未授权,请登录';
  30. break;
  31. case 403:
  32. error.message = '拒绝访问';
  33. break;
  34. case 404:
  35. error.message = '请求地址出错';
  36. break;
  37. case 408:
  38. error.message = '请求超时';
  39. break;
  40. case 500:
  41. error.message = '服务器内部错误';
  42. break;
  43. case 501:
  44. error.message = '服务未实现';
  45. break;
  46. case 502:
  47. error.message = '网关错误';
  48. break;
  49. case 503:
  50. error.message = '服务器不可用';
  51. break;
  52. case 504:
  53. error.message = '网关超时';
  54. break;
  55. case 505:
  56. error.message = 'HTTP版本不受支持';
  57. break;
  58. default:
  59. break;
  60. }
  61. this.$notify({ message: `您的网络异常(${error.message})`, type: 'warning' });
  62. return Promise.reject(error);
  63. };
  64. // 请求拦截器,增加 token interceptors拦截
  65. service.interceptors.request.use(request => {
  66. if (localStorage.getItem(prefix + 'authToken')) {
  67. request.headers.AuthToken = localStorage.getItem(prefix + 'authToken');
  68. } else if (
  69. window.location.href.indexOf('login') < 0 &&
  70. window.location.href.indexOf('forgetPassword') < 0 &&
  71. window.location.href.indexOf('verifyInfos') < 0 &&
  72. window.location.href.indexOf('register') < 0 &&
  73. window.location.href.indexOf('verificationLogin') < 0 &&
  74. window.location.href.indexOf('changePassword') < 0
  75. ) {
  76. router.push({ name: 'login' });
  77. return request;
  78. }
  79. // 全局请求统一增加一个 sourcetype: 1的参数跟区分新旧接口
  80. if (request.method == 'get') {
  81. request.params = {
  82. ...request.params,
  83. sourcetype: 1
  84. };
  85. } else if (request.method == 'post') {
  86. request.data = {
  87. ...request.data,
  88. sourcetype: 1
  89. };
  90. }
  91. return request;
  92. }, errorHandler);
  93. export default service;