axios.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import axios from 'axios';
  2. import router from '../src/router/index';
  3. // 添加请求拦截器
  4. axios.interceptors.request.use(function (config) {
  5. const token = sessionStorage.getItem('token');
  6. if (token) config.headers.authorization = token;
  7. return config;
  8. }, function (error) {
  9. // 对请求错误做些什么
  10. return Promise.reject(error);
  11. });
  12. // 添加响应拦截器
  13. axios.interceptors.response.use(function (response) {
  14. if (response.status == 401) {
  15. // 返回登录处理
  16. sessionStorage.removeItem('token');
  17. router.replace('/frame/login');
  18. }
  19. if (response.status == 500) {
  20. // 错误处理
  21. response.data.data = { errcode: -1001, errmsg: '服务器错误' };
  22. }
  23. return response.data;
  24. }, function (error) {
  25. // 对响应错误做点什么
  26. return Promise.reject(error);
  27. });
  28. // 私有方法
  29. const request = async ({ url, method, params, data, headers }) => {
  30. return await axios.request({ url, method, params, data, headers });
  31. };
  32. // 定义类
  33. class Point {
  34. get(url, params, headers) {
  35. return request({ url, params, headers });
  36. }
  37. post(url, data, params, headers) {
  38. return request({ url, method: 'post', data, params, headers });
  39. }
  40. delete(url, params, headers) {
  41. return request({ url, method: 'delete', params, headers });
  42. }
  43. }
  44. export default new Point();