requestConfig.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import request from "@/plugins/request";
  2. import store from '@/config/store';
  3. import base from '@/config/baseUrl';
  4. //可以new多个request来支持多个域名请求
  5. let $http = new request({
  6. //接口请求地址
  7. baseUrl: base.baseUrl,
  8. //设置请求头(如果使用报错跨域问题,可能是content-type请求类型和后台那边设置的不一致)
  9. header: {
  10. 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
  11. }
  12. });
  13. //请求开始拦截器
  14. $http.requestStart = function(options) {
  15. let token = uni.getStorageSync('TokenKey')
  16. //请求前加入token
  17. if (token) {
  18. options.header['token'] = token;
  19. };
  20. return options;
  21. }
  22. //所有接口数据处理(此方法需要开发者根据各自的接口返回类型修改,以下只是模板)
  23. $http.dataFactory = async function(res) {
  24. if (res.response.statusCode && res.response.statusCode == 200) {
  25. if (res.response.data.code == 1) {
  26. } else {
  27. // uni.showToast({
  28. // icon: 'none',
  29. // position: 'bottom',
  30. // title: res.response.data.msg
  31. // });
  32. }
  33. return res.response.data;
  34. } else if (res.response.statusCode == 213) {
  35. return res.response.data
  36. } else {
  37. // 返回错误的结果(catch接受数据)
  38. return Promise.reject({
  39. statusCode: res.response.statusCode,
  40. errMsg: "【request】数据工厂验证不通过",
  41. data: res.data
  42. });
  43. }
  44. };
  45. // 错误回调
  46. $http.requestError = function(e) {
  47. // e.statusCode === 0 是参数效验错误抛出的
  48. if (e.statusCode === 0) {
  49. throw e;
  50. } else {
  51. console.log(e);
  52. uni.showToast({
  53. title: "网络错误,请检查一下网络",
  54. icon: "none"
  55. });
  56. }
  57. }
  58. export default $http;