• tpwe兼容微擎小程序前端请求写法


    当使用TPWe兼容微擎小程序前端时,可以按照以下方式编写前端请求:

    1. 修改siteinfo.js下面的配置文件。
      1. var e = {
      2. uniacid: "10001",
      3. acid: "10001",
      4. multiid: "0",
      5. version: "1.0",
      6. siteroot: "https://域名/index.php",
      7. design_method: "3",
      8. redirect_module: "",
      9. template: ""
      10. };
      11. module.exports = e;

    2. 修改一下../we7/resource/js/util.js。
      1. function _interopRequireDefault(e) {
      2. return e && e.__esModule ? e : {
      3. default: e
      4. };
      5. }
      6. function _defineProperty(e, t, n) {
      7. return t in e ? Object.defineProperty(e, t, {
      8. value: n,
      9. enumerable: !0,
      10. configurable: !0,
      11. writable: !0
      12. }) : e[t] = n, e;
      13. }
      14. function getQuery(e) {
      15. var t = [];
      16. if (-1 != e.indexOf("?")) for (var n = e.split("?")[1].split("&"), a = 0; a < n.length; a++) n[a].split("=")[0] && unescape(n[a].split("=")[1]) && (t[a] = {
      17. name: n[a].split("=")[0],
      18. value: unescape(n[a].split("=")[1])
      19. });
      20. return t;
      21. }
      22. function getUrlParam(e, t) {
      23. var n = new RegExp("(^|&)" + t + "=([^&]*)(&|$)"), a = e.split("?")[1].match(n);
      24. return null != a ? unescape(a[2]) : null;
      25. }
      26. function getSign(e, t, n) {
      27. var a = require("underscore.js"), r = require("md5.js"), i = "", o = getUrlParam(e, "sign");
      28. if (o || t && t.sign) return !1;
      29. if (e && (i = getQuery(e)), t) {
      30. var s = [];
      31. for (var u in t) u && t[u] && (s = s.concat({
      32. name: u,
      33. value: t[u]
      34. }));
      35. i = i.concat(s);
      36. }
      37. i = a.sortBy(i, "name"), i = a.uniq(i, !0, "name");
      38. for (var c = "", f = 0; f < i.length; f++) i[f] && i[f].name && i[f].value && (c += i[f].name + "=" + i[f].value,
      39. f < i.length - 1 && (c += "&"));
      40. return n = n || getApp().siteInfo.token, o = r(c + n);
      41. }
      42. var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
      43. return typeof e;
      44. } : function(e) {
      45. return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
      46. }, _base = require("base64"), _md = require("md5"), _md2 = _interopRequireDefault(_md), util = {};
      47. util.base64Encode = function(e) {
      48. return (0, _base.base64_encode)(e);
      49. }, util.base64Decode = function(e) {
      50. return (0, _base.base64_decode)(e);
      51. }, util.md5 = function(e) {
      52. return (0, _md2.default)(e);
      53. }, util.url = function(e, t) {
      54. var n = getApp(), a = n.siteInfo.siteroot + "?s=/index/index/wxapp/i/" + n.siteInfo.uniacid + "&t=" + n.siteInfo.multiid + "&v=" + n.siteInfo.version + "&from=wxapp&";
      55. if (e && ((e = e.split("/"))[0] && (a += "c=" + e[0] + "&"), e[1] && (a += "a=" + e[1] + "&"),
      56. e[2] && (a += "do=" + e[2] + "&")), t && "object" === (void 0 === t ? "undefined" : _typeof(t))) for (var r in t) r && t.hasOwnProperty(r) && t[r] && (a += r + "=" + t[r] + "&");
      57. return a;
      58. }, util.getSign = function(e, t, n) {
      59. return getSign(e, t, n);
      60. }, util.request = function(e) {
      61. require("underscore.js");
      62. var t, n = require("md5.js"), a = getApp();
      63. (e = e || {}).cachetime = e.cachetime ? e.cachetime : 0, e.showLoading = void 0 === e.showLoading || e.showLoading;
      64. var r = wx.getStorageSync("userInfo").sessionid, i = e.url;
      65. if (-1 == i.indexOf("http://") && -1 == i.indexOf("https://") && (i = util.url(i)),
      66. getUrlParam(i, "state") || e.data && e.data.state || !r || (i = i + "&state=we7sid-" + r),
      67. !e.data || !e.data.m) {
      68. var o = getCurrentPages();
      69. o.length && (o = o[getCurrentPages().length - 1]) && o.__route__ && (i = i + "&m=" + o.__route__.split("/")[0]);
      70. }
      71. var s = getSign(i, e.data);
      72. if (s && (i = i + "&sign=" + s), !i) return !1;
      73. if (wx.showNavigationBarLoading(), e.showLoading && util.showLoading(), e.cachetime) {
      74. var u = n(i), c = wx.getStorageSync(u), f = Date.parse(new Date());
      75. if (c && c.data) {
      76. if (c.expire > f) return e.complete && "function" == typeof e.complete && e.complete(c),
      77. e.success && "function" == typeof e.success && e.success(c), console.log("cache:" + i),
      78. wx.hideLoading(), wx.hideNavigationBarLoading(), !0;
      79. wx.removeStorageSync(u);
      80. }
      81. }
      82. wx.request((t = {
      83. url: i,
      84. data: e.data ? e.data : {},
      85. header: e.header ? e.header : {},
      86. method: e.method ? e.method : "GET"
      87. }, _defineProperty(t, "header", {
      88. "content-type": "application/x-www-form-urlencoded"
      89. }), _defineProperty(t, "success", function(t) {
      90. if (wx.hideNavigationBarLoading(), wx.hideLoading(), t.data.errno) {
      91. if ("41009" == t.data.errno) return wx.setStorageSync("userInfo", ""), void util.getUserInfo(function() {
      92. util.request(e);
      93. });
      94. if (e.fail && "function" == typeof e.fail) e.fail(t); else if (t.data.message) {
      95. if (null != t.data.data && t.data.data.redirect) n = t.data.data.redirect; else var n = "";
      96. a.util.message(t.data.message, n, "error");
      97. }
      98. } else if (e.success && "function" == typeof e.success && e.success(t), e.cachetime) {
      99. var r = {
      100. data: t.data,
      101. expire: f + 1e3 * e.cachetime
      102. };
      103. wx.setStorageSync(u, r);
      104. }
      105. }), _defineProperty(t, "fail", function(t) {
      106. wx.hideNavigationBarLoading(), wx.hideLoading();
      107. var n = require("md5.js")(i), a = wx.getStorageSync(n);
      108. if (a && a.data) return e.success && "function" == typeof e.success && e.success(a),
      109. console.log("failreadcache:" + i), !0;
      110. e.fail && "function" == typeof e.fail && e.fail(t);
      111. }), _defineProperty(t, "complete", function(t) {
      112. e.complete && "function" == typeof e.complete && e.complete(t);
      113. }), t));
      114. }, util.getWe7User = function(e, t) {
      115. var n = wx.getStorageSync("userInfo") || {};
      116. util.request({
      117. url: "auth/session/openid",
      118. data: {
      119. code: t || "",
      120. },
      121. cachetime: 0,
      122. showLoading: !1,
      123. success: function(t) {
      124. t.data.errno || (n.sessionid = t.data.data.sessionid, n.memberInfo = t.data.data.userinfo,
      125. wx.setStorageSync("userInfo", n)), "function" == typeof e && e(n);
      126. }
      127. });
      128. }, util.upadteUser = function(e, t) {
      129. var n = wx.getStorageSync("userInfo");
      130. if (!e) return "function" == typeof t && t(n);
      131. n.wxInfo = e.userInfo, util.request({
      132. url: "auth/session/userinfo",
      133. data: {
      134. signature: e.signature,
      135. rawData: e.rawData,
      136. iv: e.iv,
      137. encryptedData: e.encryptedData
      138. },
      139. method: "POST",
      140. header: {
      141. "content-type": "application/x-www-form-urlencoded"
      142. },
      143. cachetime: 0,
      144. success: function(e) {
      145. e.data.errno || (n.memberInfo = e.data.data, wx.setStorageSync("userInfo", n)),
      146. "function" == typeof t && t(n);
      147. }
      148. });
      149. }, util.checkSession = function(e) {
      150. util.request({
      151. url: "auth/session/check",
      152. method: "POST",
      153. cachetime: 0,
      154. showLoading: !1,
      155. success: function(t) {
      156. t.data.errno ? "function" == typeof e.fail && e.fail() : "function" == typeof e.success && e.success();
      157. },
      158. fail: function() {
      159. "function" == typeof e.fail && e.fail();
      160. }
      161. });
      162. }, util.getUserInfo = function(e, t) {
      163. var n = function() {
      164. console.log("start login");
      165. wx.login({
      166. success: function(n) {
      167. util.getWe7User(function(n) {
      168. t ? util.upadteUser(t, function(t) {
      169. "function" == typeof e && e(t);
      170. }) : wx.canIUse("getUserInfo") ? wx.getUserInfo({
      171. withCredentials: !0,
      172. success: function(t) {
      173. util.upadteUser(t, function(t) {
      174. "function" == typeof e && e(t);
      175. });
      176. },
      177. fail: function() {
      178. "function" == typeof e && e(n);
      179. }
      180. }) : "function" == typeof e && e(n);
      181. }, n.code);
      182. },
      183. fail: function() {
      184. wx.showModal({
      185. title: "获取信息失败",
      186. content: "请允许授权以便为您提供给服务",
      187. success: function(e) {
      188. e.confirm && util.getUserInfo();
      189. }
      190. });
      191. }
      192. });
      193. }, a = wx.getStorageSync("userInfo") || {};
      194. a.sessionid ? util.checkSession({
      195. success: function() {
      196. t ? util.upadteUser(t, function(t) {
      197. "function" == typeof e && e(t);
      198. }) : "function" == typeof e && e(a);
      199. },
      200. fail: function() {
      201. a.sessionid = "", console.log("relogin"), wx.removeStorageSync("userInfo"), n();
      202. }
      203. }) : n();
      204. }, util.navigateBack = function(e) {
      205. var t = e.delta ? e.delta : 1;
      206. if (e.data) {
      207. var n = getCurrentPages(), a = n[n.length - (t + 1)];
      208. a.pageForResult ? a.pageForResult(e.data) : a.setData(e.data);
      209. }
      210. wx.navigateBack({
      211. delta: t,
      212. success: function(t) {
      213. "function" == typeof e.success && e.success(t);
      214. },
      215. fail: function(t) {
      216. "function" == typeof e.fail && e.fail(t);
      217. },
      218. complete: function() {
      219. "function" == typeof e.complete && e.complete();
      220. }
      221. });
      222. }, util.footer = function(e) {
      223. var t = e, n = getApp().tabBar;
      224. for (var a in n.list) n.list[a].pageUrl = n.list[a].pagePath.replace(/(\?|#)[^"]*/g, "");
      225. t.setData({
      226. tabBar: n,
      227. "tabBar.thisurl": t.__route__
      228. });
      229. }, util.message = function(e, t, n) {
      230. if (!e) return !0;
      231. if ("object" == (void 0 === e ? "undefined" : _typeof(e)) && (t = e.redirect, n = e.type,
      232. e = e.title), t) {
      233. var a = t.substring(0, 9), r = "", i = "";
      234. "navigate:" == a ? (i = "navigateTo", r = t.substring(9)) : "redirect:" == a ? (i = "redirectTo",
      235. r = t.substring(9)) : (r = t, i = "redirectTo");
      236. }
      237. console.log(r), n || (n = "success"), "success" == n ? wx.showToast({
      238. title: e,
      239. icon: "success",
      240. duration: 2e3,
      241. mask: !!r,
      242. complete: function() {
      243. r && setTimeout(function() {
      244. wx[i]({
      245. url: r
      246. });
      247. }, 1800);
      248. }
      249. }) : "error" == n && wx.showModal({
      250. title: "系统信息",
      251. content: e,
      252. showCancel: !1,
      253. complete: function() {
      254. r && wx[i]({
      255. url: r
      256. });
      257. }
      258. });
      259. }, util.user = util.getUserInfo, util.showLoading = function() {
      260. wx.getStorageSync("isShowLoading") && (wx.hideLoading(), wx.setStorageSync("isShowLoading", !1)),
      261. wx.showLoading({
      262. title: "加载中",
      263. complete: function() {
      264. wx.setStorageSync("isShowLoading", !0);
      265. },
      266. fail: function() {
      267. wx.setStorageSync("isShowLoading", !1);
      268. }
      269. });
      270. }, util.showImage = function(e) {
      271. var t = e ? e.currentTarget.dataset.preview : "";
      272. if (!t) return !1;
      273. wx.previewImage({
      274. urls: [ t ]
      275. });
      276. }, util.parseContent = function(e) {
      277. if (!e) return e;
      278. var t = [ "\ud83c[\udf00-\udfff]", "\ud83d[\udc00-\ude4f]", "\ud83d[\ude80-\udeff]" ], n = e.match(new RegExp(t.join("|"), "g"));
      279. if (n) for (var a in n) e = e.replace(n[a], "[U+" + n[a].codePointAt(0).toString(16).toUpperCase() + "]");
      280. return e;
      281. }, util.date = function() {
      282. this.isLeapYear = function(e) {
      283. return 0 == e.getYear() % 4 && (e.getYear() % 100 != 0 || e.getYear() % 400 == 0);
      284. }, this.dateToStr = function(e, t) {
      285. e = arguments[0] || "yyyy-MM-dd HH:mm:ss", t = arguments[1] || new Date();
      286. var n = e, a = [ "日", "一", "二", "三", "四", "五", "六" ];
      287. return n = n.replace(/yyyy|YYYY/, t.getFullYear()), n = n.replace(/yy|YY/, t.getYear() % 100 > 9 ? (t.getYear() % 100).toString() : "0" + t.getYear() % 100),
      288. n = n.replace(/MM/, t.getMonth() > 9 ? t.getMonth() + 1 : "0" + (t.getMonth() + 1)),
      289. n = n.replace(/M/g, t.getMonth()), n = n.replace(/w|W/g, a[t.getDay()]), n = n.replace(/dd|DD/, t.getDate() > 9 ? t.getDate().toString() : "0" + t.getDate()),
      290. n = n.replace(/d|D/g, t.getDate()), n = n.replace(/hh|HH/, t.getHours() > 9 ? t.getHours().toString() : "0" + t.getHours()),
      291. n = n.replace(/h|H/g, t.getHours()), n = n.replace(/mm/, t.getMinutes() > 9 ? t.getMinutes().toString() : "0" + t.getMinutes()),
      292. n = n.replace(/m/g, t.getMinutes()), n = n.replace(/ss|SS/, t.getSeconds() > 9 ? t.getSeconds().toString() : "0" + t.getSeconds()),
      293. n = n.replace(/s|S/g, t.getSeconds());
      294. }, this.dateAdd = function(e, t, n) {
      295. switch (n = arguments[2] || new Date(), e) {
      296. case "s":
      297. return new Date(n.getTime() + 1e3 * t);
      298. case "n":
      299. return new Date(n.getTime() + 6e4 * t);
      300. case "h":
      301. return new Date(n.getTime() + 36e5 * t);
      302. case "d":
      303. return new Date(n.getTime() + 864e5 * t);
      304. case "w":
      305. return new Date(n.getTime() + 6048e5 * t);
      306. case "m":
      307. return new Date(n.getFullYear(), n.getMonth() + t, n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds());
      308. case "y":
      309. return new Date(n.getFullYear() + t, n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds());
      310. }
      311. }, this.dateDiff = function(e, t, n) {
      312. switch (e) {
      313. case "s":
      314. return parseInt((n - t) / 1e3);
      315. case "n":
      316. return parseInt((n - t) / 6e4);
      317. case "h":
      318. return parseInt((n - t) / 36e5);
      319. case "d":
      320. return parseInt((n - t) / 864e5);
      321. case "w":
      322. return parseInt((n - t) / 6048e5);
      323. case "m":
      324. return n.getMonth() + 1 + 12 * (n.getFullYear() - t.getFullYear()) - (t.getMonth() + 1);
      325. case "y":
      326. return n.getFullYear() - t.getFullYear();
      327. }
      328. }, this.strToDate = function(dateStr) {
      329. var data = dateStr, reCat = /(\d{1,4})/gm, t = data.match(reCat);
      330. return t[1] = t[1] - 1, eval("var d = new Date(" + t.join(",") + ");"), d;
      331. }, this.strFormatToDate = function(e, t) {
      332. var n = 0, a = -1, r = t.length;
      333. (a = e.indexOf("yyyy")) > -1 && a < r && (n = t.substr(a, 4));
      334. var i = 0;
      335. (a = e.indexOf("MM")) > -1 && a < r && (i = parseInt(t.substr(a, 2)) - 1);
      336. var o = 0;
      337. (a = e.indexOf("dd")) > -1 && a < r && (o = parseInt(t.substr(a, 2)));
      338. var s = 0;
      339. ((a = e.indexOf("HH")) > -1 || (a = e.indexOf("hh")) > 1) && a < r && (s = parseInt(t.substr(a, 2)));
      340. var u = 0;
      341. (a = e.indexOf("mm")) > -1 && a < r && (u = t.substr(a, 2));
      342. var c = 0;
      343. return (a = e.indexOf("ss")) > -1 && a < r && (c = t.substr(a, 2)), new Date(n, i, o, s, u, c);
      344. }, this.dateToLong = function(e) {
      345. return e.getTime();
      346. }, this.longToDate = function(e) {
      347. return new Date(e);
      348. }, this.isDate = function(e, t) {
      349. null == t && (t = "yyyyMMdd");
      350. var n = t.indexOf("yyyy");
      351. if (-1 == n) return !1;
      352. var a = e.substring(n, n + 4), r = t.indexOf("MM");
      353. if (-1 == r) return !1;
      354. var i = e.substring(r, r + 2), o = t.indexOf("dd");
      355. if (-1 == o) return !1;
      356. var s = e.substring(o, o + 2);
      357. return !(!isNumber(a) || a > "2100" || a < "1900") && (!(!isNumber(i) || i > "12" || i < "01") && !(s > getMaxDay(a, i) || s < "01"));
      358. }, this.getMaxDay = function(e, t) {
      359. return 4 == t || 6 == t || 9 == t || 11 == t ? "30" : 2 == t ? e % 4 == 0 && e % 100 != 0 || e % 400 == 0 ? "29" : "28" : "31";
      360. }, this.isNumber = function(e) {
      361. return /^\d+$/g.test(e);
      362. }, this.toArray = function(e) {
      363. e = arguments[0] || new Date();
      364. var t = Array();
      365. return t[0] = e.getFullYear(), t[1] = e.getMonth(), t[2] = e.getDate(), t[3] = e.getHours(),
      366. t[4] = e.getMinutes(), t[5] = e.getSeconds(), t;
      367. }, this.datePart = function(e, t) {
      368. t = arguments[1] || new Date();
      369. var n = "", a = [ "日", "一", "二", "三", "四", "五", "六" ];
      370. switch (e) {
      371. case "y":
      372. n = t.getFullYear();
      373. break;
      374. case "M":
      375. n = t.getMonth() + 1;
      376. break;
      377. case "d":
      378. n = t.getDate();
      379. break;
      380. case "w":
      381. n = a[t.getDay()];
      382. break;
      383. case "ww":
      384. n = t.WeekNumOfYear();
      385. break;
      386. case "h":
      387. n = t.getHours();
      388. break;
      389. case "m":
      390. n = t.getMinutes();
      391. break;
      392. case "s":
      393. n = t.getSeconds();
      394. }
      395. return n;
      396. }, this.maxDayOfDate = function(e) {
      397. (e = arguments[0] || new Date()).setDate(1), e.setMonth(e.getMonth() + 1);
      398. var t = e.getTime() - 864e5;
      399. return new Date(t).getDate();
      400. };
      401. }, module.exports = util;

    3. 使用TPWe的API方法发送请求,并处理返回的数据。以下是一个示例代码,用于发起GET请求:
      1. //微擎的请求模式就行
      2. this.util.request({
      3. url: "wxapp/home/nav",
      4. cachetime: "30",
      5. success: function(e) {
      6. e.data.message.errno || (console.log(e.data.message.message), s.setData({
      7. navs: e.data.message.message
      8. }));
      9. }
      10. })

  • 相关阅读:
    Unity Input System最简单使用
    2023年中国石油催化裂化剂行业供需、竞争格局及市场规模分析[图]
    【BP-Adaboost预测】基于BP神经网络的Adaboost的单维时间序列预测研究(Matlab代码实现)
    centos7云服务器安装nginx记录
    什么是springMVC 视图和视图解析器
    YOLOV7详细解读(三)技术要点归纳
    如何在阿里云快速配置自动定时重启ECS云服务器?
    MyBatis和MyBatis-plus教程
    拿捏红黑树(C++)
    three.js之模型
  • 原文地址:https://blog.csdn.net/u014692298/article/details/132826995