axiosHelper.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import axios from 'axios'
  2. import {
  3. getToken
  4. } from '@/common/auth.js'
  5. import store from '@/store/index.js'
  6. let url='';
  7. // uEnvDev
  8. if (process.env.NODE_ENV === 'development') {
  9. // TODO
  10. url='/api';
  11. }
  12. // uEnvProd
  13. if (process.env.NODE_ENV === 'production') {
  14. // TODO
  15. url='/eq/api';
  16. }
  17. // create an axios instance
  18. const service = axios.create({
  19. baseURL: url, // url = base url + request url
  20. // withCredentials: true, // send cookies when cross-domain requests
  21. //crossDomain=true,
  22. //headers: {'Content-Type': 'application/x-www-form-urlencoded'},
  23. timeout: 20000 // request timeout
  24. })
  25. // request interceptor
  26. service.interceptors.request.use(
  27. config => {
  28. // do something before request is sent
  29. //console.info("axioshelper request");
  30. //console.info(mget.getters);
  31. //console.info(store);
  32. if (store.state.isLogin) {
  33. // let each request carry token
  34. // ['X-Token'] is a custom headers key
  35. // please modify it according to the actual situation
  36. let tokenstr='';
  37. if(!store.state.token){
  38. let storageState = uni.getStorageSync('storage_state');
  39. tokenstr=storageState.token.tokenStr;
  40. }
  41. else{
  42. tokenstr=store.state.token.tokenStr;
  43. }
  44. config.headers['X-Token'] = tokenstr;
  45. }
  46. console.info('axioshelper request config',config);
  47. return config;
  48. },
  49. error => {
  50. // do something with request error
  51. console.log(error) // for debug
  52. return Promise.reject(error)
  53. }
  54. )
  55. // response interceptor
  56. service.interceptors.response.use(
  57. /**
  58. * If you want to get http information such as headers or status
  59. * Please return response => response
  60. */
  61. /**
  62. * Determine the request status by custom code
  63. * Here is just an example
  64. * You can also judge the status by HTTP Status Code
  65. */
  66. response => {
  67. console.info('axioshelper应答原始数据', response);
  68. const res = response.data;
  69. console.info('axioshelper应答response.data', res);
  70. if (res.code == 500) {
  71. uni.showModal({
  72. title: '系统错误',
  73. content: res.message,
  74. showCancel: false
  75. });
  76. return;
  77. }
  78. if(res.isSuccess==false&&(res.code==201||res.code==202||res.code==205)){
  79. uni.showModal({
  80. title: '警告',
  81. content: res.errMsg,
  82. showCancel: false,
  83. success:function(ret){
  84. if(ret.confirm){
  85. uni.navigateTo({
  86. url:'/pages/login/login'
  87. });
  88. }
  89. }
  90. });
  91. return;
  92. }
  93. //console.info(res);
  94. return res;
  95. // if the custom code is not 20000, it is judged as an error.
  96. // if (!res) {
  97. // uni.showModal({
  98. // content: "登录超时,请重新登录",
  99. // showCancel: false
  100. // });
  101. // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  102. // console.info("message:" + res.message);
  103. // return Promise.reject(new Error(res.message || 'Error'))
  104. // } else {
  105. // console.info("正常登录");
  106. // return res;
  107. // }
  108. },
  109. error => {
  110. console.log('axioshelper 应答error' + error) // for debug
  111. uni.showModal({
  112. title: '错误',
  113. content: error.message,
  114. showCancel: false
  115. });
  116. return Promise.reject(error)
  117. }
  118. )
  119. export default service