http.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import axios from 'axios';
  2. import Vue from 'vue'
  3. import router from '@/router/index'
  4. axios.defaults.timeout = 10000; //设置超时时长
  5. axios.defaults.baseURL ='';
  6. //http request 拦截器
  7. axios.interceptors.request.use(
  8. config => {
  9. // const token = getCookie('名称');
  10. config.data = JSON.stringify(config.data);
  11. if (localStorage.getItem('token')) {
  12. config.headers = {
  13. 'Content-Type': 'application/json',
  14. 'Authorization': "Bearer " + localStorage.getItem('token'),
  15. 'lang': localStorage.getItem('local')
  16. }
  17. } else {
  18. config.headers = {
  19. 'Content-Type': 'application/json',
  20. 'Authorization': ""
  21. }
  22. }
  23. return config;
  24. },
  25. error => {
  26. return Promise.reject(err);
  27. }
  28. );
  29. //http response 拦截器
  30. axios.interceptors.response.use(
  31. response => {
  32. if (response.data.errCode == 2) {
  33. router.push({
  34. path: "/login",
  35. querry: { redirect: router.currentRoute.fullPath }//从哪个页面跳转
  36. })
  37. }
  38. return response;
  39. },
  40. error => {
  41. if (401 === error.response.status) {
  42. localStorage.clear();
  43. console.log(window.location);
  44. window.location.href = window.location.origin;
  45. alert("登录状态已过期!请重新登录!");
  46. } else if (500 === error.response.status) {
  47. //alert("服务器错误!");
  48. } else {
  49. return Promise.reject(error);
  50. }
  51. }
  52. )
  53. /**
  54. * 封装get方法
  55. * @param url
  56. * @param data
  57. * @returns {Promise}
  58. */
  59. export function fetch(url, params) {
  60. let data = {};
  61. data.method = url;
  62. data.params = params;
  63. data.lang = localStorage.getItem('local');
  64. return new Promise((resolve,reject) => {
  65. axios.get(url, data)
  66. .then(response => {
  67. resolve(response.data);
  68. // this.$Message.success('数据访问成功!');
  69. })
  70. .catch(err => {
  71. reject(err);
  72. this.$Message.error('数据访问错误!');
  73. })
  74. })
  75. }
  76. /**
  77. * 封装post请求
  78. * @param url
  79. * @param data
  80. * @returns {Promise}
  81. */
  82. export function post(url, params) {
  83. let data = {};
  84. data.method = url;
  85. data.params = params;
  86. data.lang = localStorage.getItem('local');
  87. return new Promise((resolve,reject) => {
  88. axios.post(url,data)
  89. .then(response => {
  90. resolve(response.data);
  91. // this.$Message.success('数据访问成功!');
  92. },err => {
  93. reject(err);
  94. //this.$Message.error('数据访问错误!');
  95. })
  96. })
  97. }