request.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /*
  2. @params url 接口地址
  3. @params method 请求方式
  4. @params data 参数
  5. */
  6. let BASE_URL = ''
  7. // #ifdef MP-WEIXIN
  8. // 仅在微信小程序可用
  9. BASE_URL =
  10. // 'https://novel.ytpm.net/pro-api'
  11. uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? 'https://novel.ytpm.net/pro-api'
  12. : "https://novel.test.ytpm.net/pro-api"; // 区分正式与体验版
  13. // #endif
  14. // #ifdef H5
  15. BASE_URL = "https://novel.test.ytpm.net/pro-api"
  16. // BASE_URL = "http://192.168.1.89:8685"
  17. // #endif
  18. const WebUrl = BASE_URL.split('/pro-api')[0]
  19. const imgApi = BASE_URL+"/file/uploadFile"; // 上传接口
  20. const imgBaseApi = BASE_URL+ "/file/uploadBaseFile"
  21. const request = (url, method, data) => {
  22. let token = uni.getStorageSync("token"); //openId
  23. let header = {
  24. "Content-Type": "application/json",
  25. 'Accept':"application/json"
  26. };
  27. if (token) {
  28. header.Authorization = token;
  29. }
  30. return new Promise((resolve, reject) => {
  31. uni.request({
  32. url: BASE_URL + url, // 开发者服务器接口地址
  33. method: method, //请求方式
  34. timeout: 60000, //请求超时时间
  35. data: data, //请求的参数
  36. header: header,
  37. success(res) {
  38. if(res.statusCode == 401){
  39. uni.showToast({
  40. title: "身份验证过期,请重新登录",
  41. icon: "none",
  42. });
  43. let firstView = uni.getStorageSync('firstView')
  44. uni.clearStorageSync()
  45. var pages = getCurrentPages();
  46. var page = pages[pages.length - 1];
  47. var fullpath = page.$page.fullPath
  48. uni.setStorageSync('firstView',firstView)
  49. uni.setStorageSync('tempUrl',fullpath)
  50. uni.setStorageSync('401Flag',true) // 401时用户手动点击登录
  51. setTimeout(() => {
  52. uni.navigateTo({
  53. url: "/pages/login/index",
  54. });
  55. }, 500);
  56. return
  57. }
  58. //对请求请求到的信息进行处理
  59. if (res.data.status == 200 || res.data.status == 500 || res.data.status == 0) {
  60. if (res.data.description) {
  61. if (res.data.data) {
  62. res.data.data = res.data.data;
  63. } else {
  64. res.data.data = { description: "" };
  65. }
  66. // res.data.data.description = res.data.description;
  67. }
  68. resolve(res.data.data);
  69. if (res.data.Authorization) {
  70. // 更新 token
  71. uni.setStorageSync("token", res.data.Authorization);
  72. }
  73. } else if (res.data.status == 403) {
  74. uni.showToast({
  75. title: "身份验证过期,请重新登录",
  76. icon: "none",
  77. });
  78. setTimeout(() => {
  79. uni.navigateTo({
  80. url: "/pages/login/index",
  81. });
  82. }, 1000);
  83. } else if (res.data.status == 40305) {
  84. uni.showToast({
  85. title: "该账号已被冻结,请联系客服",
  86. icon: "none",
  87. });
  88. // uni.navigateTo({
  89. // url: "/pages/login/index",
  90. // });
  91. } else if (res.data.status == 100) {
  92. uni.showToast({
  93. title: res.data.description,
  94. icon: "none",
  95. });
  96. } else {
  97. uni.showToast({
  98. title: "请求失败,请重新获取数据",
  99. icon: "none",
  100. });
  101. }
  102. },
  103. fail(err) {
  104. reject(err);
  105. },
  106. });
  107. });
  108. };
  109. export default {
  110. request, //向外暴露request
  111. imgApi,
  112. imgBaseApi,
  113. BASE_URL,
  114. WebUrl
  115. };