axiosHelper.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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='/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. config.headers['X-Token'] = store.state.token.tokenStr;
  37. }
  38. console.info('axioshelper request config',config);
  39. return config;
  40. },
  41. error => {
  42. // do something with request error
  43. console.log(error) // for debug
  44. return Promise.reject(error)
  45. }
  46. )
  47. // response interceptor
  48. service.interceptors.response.use(
  49. /**
  50. * If you want to get http information such as headers or status
  51. * Please return response => response
  52. */
  53. /**
  54. * Determine the request status by custom code
  55. * Here is just an example
  56. * You can also judge the status by HTTP Status Code
  57. */
  58. response => {
  59. console.info('axioshelper应答原始数据', response);
  60. const res = response.data;
  61. console.info('axioshelper应答response.data', res);
  62. if (res.code == 500) {
  63. uni.showModal({
  64. title: '系统错误',
  65. content: res.message,
  66. showCancel: false
  67. });
  68. return;
  69. }
  70. if(res.isSuccess==false&&(res.code==201||res.code==202||res.code==205)){
  71. uni.showModal({
  72. title: '警告',
  73. content: res.errMsg,
  74. showCancel: false,
  75. success:function(ret){
  76. if(ret.confirm){
  77. uni.navigateTo({
  78. url:'/pages/login/login'
  79. });
  80. }
  81. }
  82. });
  83. return;
  84. }
  85. //console.info(res);
  86. return res;
  87. // if the custom code is not 20000, it is judged as an error.
  88. // if (!res) {
  89. // uni.showModal({
  90. // content: "登录超时,请重新登录",
  91. // showCancel: false
  92. // });
  93. // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
  94. // console.info("message:" + res.message);
  95. // return Promise.reject(new Error(res.message || 'Error'))
  96. // } else {
  97. // console.info("正常登录");
  98. // return res;
  99. // }
  100. },
  101. error => {
  102. console.log('axioshelper 应答error' + error) // for debug
  103. uni.showModal({
  104. title: '错误',
  105. content: error.message,
  106. showCancel: false
  107. });
  108. return Promise.reject(error)
  109. }
  110. )
  111. export default service