当前位置:   article > 正文

uniapp封装request请求

uniapp封装request

第一步:在根目录下创建request文件夹,并在文件夹下创建request.js

 第二步:将以下代码放入request.js中

  1. // 定义请求地址
  2. const BASE_URL = "https://xxx.com/" //后台API地址
  3. // 封装请求方法
  4. const request = (options) => {
  5. return new Promise((resolve, reject) => {
  6. uni.request({
  7. url: BASE_URL + options.url,
  8. method: options.method || 'GET',
  9. header: {
  10. authtoken: '2c9080345f3d6b62015f3d774e59000d:4711be44a1dac5b4571f39438b3642b9' //可以从vuex或uni.getStorageSync中拿到token
  11. },
  12. data: options.data || {},
  13. success: (res) => {
  14. const data = res.data
  15. if (res.statusCode !== 200) {
  16. handleStatus(res) //处理状态码
  17. return
  18. }
  19. resolve(data)
  20. },
  21. fail: (error) => {
  22. uni.showToast({
  23. icon: 'error',
  24. title: '系统错误'
  25. })
  26. reject(error)
  27. },
  28. complete: (res) => {
  29. }
  30. })
  31. })
  32. }
  33. const handleStatus = (res) => {
  34. switch (res.statusCode) {
  35. // 401: 未登录
  36. // 未登录则跳转登录页面,并携带当前页面的路径
  37. // 在登录成功后返回当前页面,这一步需要在登录页操作。
  38. case 401:
  39. uni.navigateTo({
  40. url: ''
  41. })
  42. return
  43. break;
  44. // 403 token过期
  45. // 登录过期对用户进行提示
  46. // 清除本地token和清空vuex中token对象
  47. // 跳转登录页面
  48. case 403:
  49. uni.showToast({
  50. icon: 'error',
  51. title: res.data.resultMsg
  52. })
  53. break;
  54. // 404请求不存在
  55. case 404:
  56. break;
  57. // 其他错误,直接抛出错误提示
  58. default:
  59. }
  60. }
  61. export function get(url, params) {
  62. return new Promise((resolve, reject) => {
  63. request({
  64. url: url,
  65. method: 'GET',
  66. data: params,
  67. }).then(res => {
  68. resolve(res);
  69. }).catch(err => {
  70. reject(err)
  71. })
  72. });
  73. }
  74. export function post(url, params, responseType) {
  75. return new Promise((resolve, reject) => {
  76. request({
  77. url: url,
  78. method: 'POST',
  79. data: params,
  80. })
  81. .then(res => {
  82. resolve(res);
  83. })
  84. .catch(err => {
  85. reject(err)
  86. })
  87. });
  88. }

 第三步:创建api文件夹并生成api.js

 api.js中引入封装好的get和post方法

  1. import { get, post } from '@/request/request.js'
  2. export const getEventLabelDict = obj => get("labeling/xxxx/xx/xxxxx",obj)

第四步:页面中调用接口即可

  1. <template>
  2. <view>
  3. </view>
  4. </template>
  5. <script>
  6. import {
  7. getEventLabelDict
  8. } from "../../api/api";
  9. export default {
  10. data() {
  11. return {
  12. }
  13. },
  14. created() {
  15. getEventLabelDict().then((res)=>{
  16. console.log('res',res)
  17. })
  18. },
  19. methods: {
  20. }
  21. }
  22. </script>
  23. <style scoped lang="scss">
  24. </style>

大家可以根据自身需求在请求中添加相关操作~~

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

闽ICP备14008679号