当前位置:   article > 正文

uniapp封装统一请求(get和post)_uniapp 统一请求

uniapp 统一请求

 uniapp封装请求

request.js文件

  1. import Vue from 'vue'
  2. // 全局配置
  3. import settings from './settings.js'
  4. function computedBaseUrl(url) {
  5. // console.log(url);
  6. return (url.indexOf('http') === -1 ? settings.baseUrl : '') + url
  7. }
  8. // 发送请求
  9. export default (options) => {
  10. const {
  11. url = '',
  12. method = 'GET',
  13. data = {},
  14. header = {}
  15. } = options
  16. return new Promise((resolve, reject) => {
  17. try {
  18. if (options.headers.isToken == true) {
  19. uni.request({
  20. url: computedBaseUrl(url),
  21. method,
  22. data,
  23. header: {
  24. // "Content-Type": "multipart/form-data",
  25. // "Token": uni.getStorageSync('token'),
  26. "Authorization": uni.getStorageSync('token'),
  27. // "Authorization" : 'Bearer ' + JSON.parse(uni.getStorageSync('token')), // 让每个请求携带自定义token 请根据实际情况自行修改
  28. ...header
  29. },
  30. success(e) {
  31. // console.log(e.data,'success');
  32. if (e.data.code == 401) {
  33. uni.reLaunch({url: '/pages/login/login',});
  34. }
  35. resolve(e.data)
  36. },
  37. fail(e) {
  38. // console.log(e,'fail');
  39. if (e && e.data && e.data.code == 401) {
  40. uni.reLaunch({url: '/pages/login/login',});
  41. }
  42. reject({...e,msg:e.errMsg||e.msg||'未知错误'})
  43. }
  44. })
  45. }else{
  46. uni.request({
  47. url: computedBaseUrl(url),
  48. method,
  49. data,
  50. header: {
  51. // "Content-Type": "multipart/form-data",
  52. // "Token": uni.getStorageSync('token'),
  53. // "Authorization": uni.getStorageSync('token'),
  54. // "Authorization" : 'Bearer ' + JSON.parse(uni.getStorageSync('token')), // 让每个请求携带自定义token 请根据实际情况自行修改
  55. ...header
  56. },
  57. success(e) {
  58. if (e.data.code == 401) {
  59. uni.reLaunch({url: '/pages/login/index',});
  60. }
  61. resolve(e.data)
  62. },
  63. fail(e) {
  64. if (e.data.code == 401) {
  65. uni.reLaunch({url: '/pages/login/index',});
  66. }
  67. reject({...e,msg:e.errMsg||e.msg||'未知错误'})
  68. }
  69. })
  70. }
  71. } catch (err) {
  72. reject({...err,msg:err.errMsg||err.msg||'未知错误'})
  73. }
  74. }).then(data => data)
  75. .catch(err => [err, null])
  76. }

settings.js文件

  1. export default {
  2. baseUrl:'http://127.0.0.1',
  3. uploadUrl:''
  4. }

注意事项

setting中设置地址,方便进行统一管理,

settinngs.js和request.js文件是同级,放在一个文件夹中即可

使用方式

创建一个api文件夹

  1. import request from "@/utils/request.js"
  2. // 接口模板
  3. export function getLogin(data = {}) {
  4. return request({
  5. url: '/api/wx/wxLogin',
  6. method: 'post',
  7. data,
  8. headers: {
  9. isToken: false
  10. },
  11. })
  12. }

注意小技巧

上面的headers中的isToken,方便对接口进行管理,因为微信小程序强制登录是不能通过审核的,所以有时候要后端放开接口,不需要token,也可哟访问,提高审核的通过率,这边就很方便管理!

结束语

欢迎指教

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/231187
推荐阅读
相关标签
  

闽ICP备14008679号