interceptos.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import {
  2. Encrypt,
  3. UrlPath,
  4. Message
  5. } from "./../commonuni"
  6. // 请求拦截
  7. const fetch = (action, opt) => {
  8. let params = opt.params
  9. opt.url = UrlPath.getBaseUrl() + action
  10. opt.method = opt.method || "GET";
  11. var header = {}
  12. let token = uni.getStorageSync("jwttoken")
  13. if (token != null && token != "") {
  14. header = {
  15. Authorization: 'Bearer ' + token
  16. }
  17. }
  18. opt.header = {
  19. ...opt.header,
  20. ...header
  21. }
  22. if (opt.method == "POST") {
  23. if (opt.data) {
  24. opt.data = {
  25. data: Encrypt.AESEncode(JSON.stringify(opt.data))
  26. }
  27. }
  28. }
  29. return new Promise((resolve, reject) => {
  30. let options = {}
  31. Object.keys(opt).map(key => {
  32. if (key !== "params") {
  33. return options[key] = opt[key]
  34. }
  35. })
  36. uni.request(options)
  37. .then(res => interceptorsRes(res, resolve, reject))
  38. .catch(err => interceptorsErr(err, reject))
  39. })
  40. }
  41. // 请求拦截
  42. const fetchfile = (action, opt) => {
  43. let params = opt.params
  44. opt.url = action
  45. opt.method = "POST";
  46. var header = {}
  47. let token = uni.getStorageSync("jwttoken")
  48. if (token != null && token != "") {
  49. header = {
  50. Authorization: 'Bearer ' + token
  51. }
  52. }
  53. opt.header = {
  54. ...opt.header,
  55. ...header
  56. }
  57. return new Promise((resolve, reject) => {
  58. uni.uploadFile(opt)
  59. .then(res => interceptorsRes(res, resolve, reject))
  60. .catch(err => interceptorsErr(err, reject))
  61. })
  62. }
  63. // 响应拦截
  64. const interceptorsRes = (resp, resolve, reject) => {
  65. const {
  66. code
  67. } = resp.data
  68. if (resp.statusCode == 401 || code == 401) {
  69. Message.info("登录已过期,请重新登录!")
  70. uni.navigateTo({
  71. url: '../../pages/index/index'
  72. });
  73. resolve(null);
  74. return;
  75. }
  76. if (typeof(resp.data) == "string") {
  77. resp.data = JSON.parse(Encrypt.AESDecode(JSON.parse(resp.data).data, null, null));
  78. } else {
  79. resp.data = JSON.parse(Encrypt.AESDecode(resp.data.data, null, null));
  80. }
  81. resolve(resp.data)
  82. }
  83. // 异常处理
  84. const interceptorsErr = (err, reject) => {
  85. Message.error("网络异常", err)
  86. reject(err)
  87. }
  88. export {
  89. fetch,
  90. fetchfile
  91. }