request.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import * as config from '@/config'
  2. let baseUrl = config.def().baseUrlNew
  3. // 定义基础请求路径(后端服务器地址)
  4. const baseRequest = (method, url, data, header) => {
  5. var contentheader = 'application/json'
  6. if (header) {
  7. contentheader = header
  8. }
  9. console.log(uni.getStorageSync("shiro"))
  10. let baseDefaultOpts = {
  11. url: baseUrl + url,
  12. // 请求接口地址
  13. data: data,
  14. // 传入请求参数
  15. method: method,
  16. // 配置请求类型
  17. header: {
  18. 'Content-Type': contentheader, //'application/x-www-form-urlencoded; charset=UTF-8',
  19. // cookie: uni.getStorageSync("shiro")
  20. // token:uni.getStorageSync("shiro")
  21. },
  22. }
  23. let promise = new Promise(function(resolve, reject) {
  24. uni.getNetworkType({}).then((res) => {
  25. // console.log(res)
  26. if (res[1].networkType === "none") {
  27. uni.showToast({
  28. icon: 'none',
  29. title: '网络异常,请检查网络状况',
  30. duration: 2000
  31. });
  32. } else {
  33. // uni.request({
  34. // ...baseDefaultOpts,
  35. // //请求成功的回调,可以在方法做返回状态码的判断。也可以直接返回resolve ==》success: resolve,fail:reject
  36. // success: (res) => {
  37. // resolve(res)
  38. // },
  39. // //请求失败的回调,可以在方法。反馈用户、提示用户,也可以直接返回reject ==》success: resolve,fail:reject
  40. // fail: (err) => {
  41. // reject(err)
  42. // },
  43. // })
  44. uni.request(baseDefaultOpts).then(
  45. (res) => {
  46. console.log(res)
  47. // console.log(JSON.stringify(res[1].data))
  48. // if(res[1].data.code == '200' || res[1].data.code == 200){
  49. // // 后端返回的状态码100为成功状态,成功则返回请求结果,在app调试时可以通过console.log(JSON.stringify(res[1].data))来查看返回值(以项目实际情况为准)
  50. // resolve(res[1].data)
  51. // }else{
  52. // uni.showToast({
  53. // icon:'none',
  54. // title: res[1].data.message,
  55. // duration: 2000
  56. // });
  57. // }
  58. if (res[1]) {
  59. if (res[1].data.code == '200' || res[1].data.code == 200) {
  60. resolve(res[1].data)
  61. }else{
  62. resolve(res[1].data)
  63. // uni.$u.toast(res[1].data.message);
  64. // uni.showToast({
  65. // icon:'none',
  66. // title: res[1].data.message,
  67. // duration: 2000
  68. // });
  69. }
  70. } else {
  71. // console.log(res)
  72. reject(res)
  73. // uni.showToast({
  74. // icon: 'none',
  75. // title: '网络异常,请检查网络状况',
  76. // duration: 2000
  77. // });
  78. }
  79. // // 登录失败
  80. // if(res[1].data.code == '11006' || res[1].data.code == 11006){
  81. // reject(res[1].data)
  82. // }
  83. // if(res[1].data.code == '105' || res[1].data.code == 105){
  84. // // 后端返回状态码为105则为未登录状态(以项目实际情况为准)
  85. // uni.showToast({
  86. // icon:'none',
  87. // title: '尚未登录',
  88. // duration: 2000
  89. // });
  90. // // 尚未登录的逻辑处理
  91. // return false
  92. // }
  93. }
  94. ).catch(
  95. (response) => {
  96. reject(response)
  97. }
  98. )
  99. }
  100. })
  101. })
  102. return promise
  103. };
  104. //带Token请求
  105. const TokenRequest = (method, url, data, header) => {
  106. var contentheader = 'application/json'
  107. if (header) {
  108. contentheader = header
  109. }
  110. let ac_token = "";
  111. uni.getStorage({
  112. key: 'userInfo',
  113. success: function(res) {
  114. ac_token = res.data.accessToken
  115. }
  116. });
  117. //此token是登录成功后后台返回保存在storage中的
  118. let DefaultOpts = {
  119. url: baseUrl + url,
  120. data: data,
  121. method: method,
  122. header: {
  123. 'content-type': contentheader,
  124. 'Token': ac_token,
  125. }
  126. }
  127. let promise = new Promise(function(resolve, reject) {
  128. uni.request(DefaultOpts).then(
  129. (res) => {
  130. console.log(JSON.stringify(res[1].data))
  131. if (res[1].data.code == '200' || res[1].data.code == 200) {
  132. // 后端返回的状态码100为成功状态,成功则返回请求结果,在app调试时可以通过console.log(JSON.stringify(res[1].data))来查看返回值(以项目实际情况为准)
  133. resolve(res[1].data)
  134. }
  135. if (res[1].data.code == '105' || res[1].data.code == 105) {
  136. // 后端返回状态码为105则为未登录状态(以项目实际情况为准)
  137. uni.showToast({
  138. icon: 'none',
  139. title: '尚未登录',
  140. duration: 2000
  141. });
  142. // 尚未登录的逻辑处理
  143. return false
  144. }
  145. }
  146. ).catch(
  147. (response) => {
  148. reject(response)
  149. }
  150. )
  151. })
  152. return promise
  153. }
  154. export default {
  155. baseUrl,
  156. baseRequest,
  157. TokenRequest
  158. }