request.js.dev 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //用BASEURL来表示域名地址
  2. // const BASE_URL = 'http://192.168.110.153:9002'
  3. // const BASE_URL = 'https://zswl.api.jpy.wang/zswl-cloud-bdb'
  4. // const BASE_URL = 'https://api.dev.zonelife.cn'
  5. import {
  6. BASE_URL
  7. } from '@/utils/config.js'
  8. //封装请求方法
  9. export let request = (options) => {
  10. return new Promise((resolve, reject) => {
  11. //请求路径拼接,,其中options.url就是通过下面方法myRequest获取到接口部分的url
  12. //method--请求方法,不是method的post就是get
  13. console.log('requert',options.url.indexOf('/zswl-cloud-bdb'))
  14. let base_url = BASE_URL
  15. options.url = options.url.replace('/zswl-cloud-shop','');
  16. base_url = options.url.indexOf('/zswl-cloud-bdb') != -1 ? 'https://api.dev.zonelife.cn' : BASE_URL
  17. base_url = options.url.indexOf('/springbatchservice') != -1 ? 'https://api.dev.zonelife.cn' : base_url
  18. if(options.url.indexOf('http')==-1){
  19. options.url = base_url + options.url
  20. }
  21. console.log(options.url)
  22. //请求的参数,当没有参数的时候就是空对象
  23. request.requestTask =uni.request({
  24. url: options.url,
  25. method: options.method || 'GET',
  26. data: options.data || {},
  27. header: {
  28. accessToken: uni.getStorageSync('token')
  29. },
  30. success: (res) => {
  31. if (res.statusCode !== 200) {
  32. return uni.showToast({
  33. title: '获取失败',
  34. icon: 'error',
  35. })
  36. // uni.hideLoading()
  37. } else if (res.data.msg != '成功') { //接口返回报错
  38. uni.showToast({
  39. title: res.data.content || res.data.msg || '请求失败',
  40. icon: 'none',
  41. duration:3000
  42. })
  43. console.error('报错接口:',base_url + options.url,'报错信息:', res.data);
  44. // token过期或出了问题
  45. if (res.data.exception && res.data.exception.type ==
  46. 'AuthenticationCredentialsNotFoundException') {
  47. uni.showToast({
  48. title: '登录过期',
  49. icon: 'error'
  50. })
  51. if (uni.getStorageSync('refreshToken') && uni.getStorageSync('token') ) {
  52. // 刷新token
  53. uni.showLoading({
  54. title: '刷新登录中',
  55. })
  56. uni.request({
  57. url: base_url + '/zswl-cloud-bdb/user/refreshToken',
  58. method: 'GET',
  59. data: {
  60. refreshToken: uni.getStorageSync('refreshToken')
  61. },
  62. success(r) {
  63. uni.hideLoading()
  64. if (r.data.content == '刷新令牌错误') {
  65. uni.showToast({
  66. title: '登录失效',
  67. icon: 'fail'
  68. })
  69. uni.clearStorageSync()
  70. uni.reLaunch({
  71. url: '/pages/index/index'
  72. })
  73. } else {
  74. uni.setStorageSync('token', r.data.content) //登录状态
  75. // 刷新页面
  76. var pages = getCurrentPages();
  77. var url = '/' + pages[pages.length - 1].route
  78. uni.reLaunch({
  79. url
  80. })
  81. }
  82. }
  83. })
  84. }else{
  85. uni.showModal({
  86. title:'请登录',
  87. confirmText:'去登录',
  88. success(res){
  89. if(res.confirm){
  90. var pages = getCurrentPages()
  91. let parmas = pages[pages.length - 1].options
  92. console.log(11111,parmas);
  93. let str = ''
  94. for (let key in parmas) {
  95. str += `&${key}=${parmas[key]}`
  96. }
  97. console.log(2222222,str);
  98. var url = '/' + pages[pages.length - 1].route
  99. console.log(333333,url);
  100. uni.reLaunch({
  101. url:'/login/login/login?redirect='+url+str
  102. })
  103. }else if (res.cancel) {
  104. console.log('拒绝登录,跳转首页');
  105. uni.switchTab({
  106. url:'/pages/index/index'
  107. })
  108. }
  109. }
  110. })
  111. }
  112. }
  113. }
  114. resolve(res.data)
  115. },
  116. //请求失败
  117. fail: (err) => {
  118. uni.showToast({
  119. title: '请求接口失败'
  120. })
  121. reject(err)
  122. }
  123. })
  124. })
  125. }