request.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import {Base64} from 'js-base64'
  2. // const baseUrl='http://localhost:8000/'
  3. const baseUrl='https://yxy.glut.cc/'
  4. // 获取后端需要的token认证
  5. // 使用wx.getStorageSync('userInfo')从本地存储中获取用户令牌信息并将其赋值给user_Token变量。
  6. function encryptToken(){
  7. const a =wx.getStorageSync('userInfos')
  8. let userInfo;
  9. if(a === '' || a === null || a === undefined || !"userInfo" in a){
  10. return '';
  11. }else{
  12. userInfo = a.userInfo;
  13. }
  14. console.log(userInfo)
  15. if(userInfo === '' || userInfo === null || userInfo === undefined || !"token" in userInfo){
  16. return '';
  17. }else{
  18. // const auth = Base64.encode(user_Token + ':')
  19. const Batoken = userInfo.token
  20. return Batoken
  21. }
  22. }
  23. // 发生请求
  24. // 这个函数是一个请求接口的工具函数,接受一个url参数、一个data参数(默认为空对象)和一个method参数(默认为GET),
  25. // 返回一个Promise对象,通过uni.request方法发送网络请求,并在请求成功或失败时打印相应的结果或错误信息。
  26. // 当网络请求成功时(即uni.request方法内部的success回调函数被调用),通常我们会将服务器返回的数据(在这里是res)传递给resolve函数,这会使Promise变为fulfilled(已成功)状态,并将数据传递给后续的.then处理函数。
  27. // 当网络请求失败时(即uni.request方法内部的fail回调函数被调用),我们将错误信息(在这里是err)传递给reject函数,这会使Promise变为rejected(已失败)状态,并将错误信息传递给后续的.catch处理函数。
  28. export function requestApi(url,data={},method='GET'){
  29. return new Promise((resolev,reject)=>{
  30. uni.request({
  31. url:baseUrl+url,
  32. method:method,
  33. data:data,
  34. header:{Batoken:encryptToken()},
  35. // 服务器的错误也会走success,所以要做判断
  36. success:(res)=>{
  37. console.log(res);
  38. const ststus= res.statusCode
  39. switch(ststus){
  40. case 200:
  41. resolev(res.data)
  42. wx.hideLoading()
  43. break;
  44. case 404:
  45. console.error('接口不存在')
  46. reject('404')
  47. wx.hideLoading()
  48. break;
  49. case 401:
  50. wx.navigateTo({url:'/pages/login/index'})
  51. wx.hideLoading()
  52. break;
  53. case 500:
  54. console.error('服务器异常错误')
  55. showToast('发生异常错误')
  56. reject('500')
  57. wx.hideLoading()
  58. break;
  59. case 501:
  60. console.error('服务器异常错误')
  61. showToast('发生异常错误')
  62. reject('501')
  63. wx.hideLoading()
  64. break;
  65. case 502:
  66. console.error('服务器异常错误')
  67. showToast('发生异常错误')
  68. reject('502')
  69. wx.hideLoading()
  70. break;
  71. case 400:
  72. console.error('参数不对',res.data.msg)
  73. reject('400')
  74. wx.hideLoading()
  75. break;
  76. case 422:
  77. console.error(res.data.msg)
  78. reject('422')
  79. wx.hideLoading()
  80. break;
  81. }
  82. },
  83. fail: (err) => {
  84. reject(err)
  85. console.log(err)
  86. }
  87. })
  88. })
  89. }
  90. export function requestFileApi(url,filePath={},){
  91. return new Promise((resolev,reject)=>{
  92. uni.uploadFile({
  93. name: 'file',
  94. url:baseUrl+url,
  95. filePath: filePath,
  96. header:{Batoken:encryptToken()},
  97. // 服务器的错误也会走success,所以要做判断
  98. success:(res)=>{
  99. resolev(res.data)
  100. },
  101. fail: (err) => {
  102. reject(err)
  103. console.log(err)
  104. }
  105. })
  106. })
  107. }
  108. function showToast(title){
  109. wx.showToast({
  110. title:title,
  111. icon: 'none',
  112. duration: 2000
  113. })
  114. }