美文网首页
uniapp项目请求封装及状态码统一管理

uniapp项目请求封装及状态码统一管理

作者: zkzhengmeng | 来源:发表于2021-12-28 15:59 被阅读0次
1.在项目根目录(pages同级目录)新建utils文件夹 , 在utils文件夹内新建request.js文件内容如下:
//1.md5是从数据交互安全考虑进行加密 , 如不需要可不用使用
import md5 from './md5.js' //文件可从网上下载 放在utils文件夹下
const baseUrl = 'https://formal.com/' //正式环境地址 需要更换成自己项目请求正式环境地址
//const baseUrl = 'https://test.com/' //测试环境地址  需要更换成自己项目请求测试环境地址
let timestamp = Math.round(new Date().getTime() / 1000).toString() //当前时间戳
let secret = 'c8bef9c31576a5e7c48dcb27a558cb8c'
let sign = md5(secret + timestamp) //MD5加密字符串
let token = uni.getStorageSync('token') //token

//封装请求Promise模式请求
export default function request(url, params, method = 'GET') {
    return new Promise((reslove, reject) => {
        uni.request({
            url: baseUrl + url,
            method: method || 'GET',
            header: {//可根据需要自行添加或删除参数
                'sign': sign,
                'timestamp': timestamp,
                'Authorization':token
            },
            data: params || {},
            success: (res) => {
                if (res.data.code == 0) {
                    reslove(res.data, res);
                } else if (res.data.code == 10003) {//统一处理状态码 状态码根据自己项目设置即可
                    uni.navigateTo({
                        url: "/pages/login/login"
                    });
                } else if (res.data.code !== 0 && res.data.code !== 10003) {//统一处理状态码 状态码根据自己项目设置即可
                    uni.showToast({
                        title: res.data.msg || '系统错误',
                        icon: 'none',
                        duration: 2000
                    });
                    reject(res.data.msg || '系统错误');
                }
            },
            fail: (msg) => {
                reject('请求失败');
            }
        })
    });
}

2.在main.js文件内引入封装好的request文件
import App from './App'
import Vue from 'vue'
// #ifndef VUE3
import request from'utils/request.js' //引入请求文件
Vue.config.productionTip = false
Vue.prototype.$api = request //把文件注入到Vue原型中
App.mpType = 'app'
const app = new Vue({
    ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif
3.完成以上2步后即可在全局使用, 使用中注意参数顺序不要传错(url, params, method = 'GET') , 后2个参数可不传
//在页面中使用
<template>
    <view class="content">
        <image class="logo" src="/static/logo.png"></image>
        <view class="text-area">
            <text class="title">{{title}}</text>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                title: 'Hello'
            }
        },
        onLoad() {
          this.get() 
        },
        methods: {
           get(){
              this.$api('api/user/info').then(res=>{ //
                  console.log(res)
              })
           }
        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .logo {
        height: 200rpx;
        width: 200rpx;
        margin-top: 200rpx;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 50rpx;
    }

    .text-area {
        display: flex;
        justify-content: center;
    }

    .title {
        font-size: 36rpx;
        color: #8f8f94;
    }
</style>

相关文章

  • uniapp项目请求封装及状态码统一管理

    1.在项目根目录(pages同级目录)新建utils文件夹 , 在utils文件夹内新建request.js文件内...

  • uniapp请求+uView2.0请求封装

    uniapp开发基础模板,对uniapp请求进行了简单封装,实现请求拦截及响应处理,同时引用了 uView2.0 ...

  • vue项目后台接口管理

    前言 上篇文章axios二次封装及API接口统一管理讲到了vue项目中的axios请求api统一的封装,但是api...

  • uni-app请求接口封装

    uniapp使用类封装接口 大致分为三步 1 封装请求2 定义接口3 页面调用 1 在项目根目录下新建utils文...

  • uniapp请求封装

  • uniapp请求封装

    最近使用了uniapp开发了几个项目,参考了网上的一些案例根据自己的项目需求对网络请求做了封装,顺便记下方便以后使...

  • uniapp 请求封装

    最近使用了uniapp开发了几个项目,参考了网上的一些案例根据自己的项目需求对网络请求做了封装,顺便记下方便以后使...

  • promise 封装get,post请求

    在uniapp中,使用promise对get,post请求进行封装 然后需要把promise封装的req函数,挂载...

  • uniapp请求的封装

    uinapp 发送请求的简单封装 api.js main.js

  • uniapp封装request请求

    步骤如下: 1、项目下新建common文件夹,再创建request.js文件 2、打开request.js文件,开...

网友评论

      本文标题:uniapp项目请求封装及状态码统一管理

      本文链接:https://www.haomeiwen.com/subject/yvwvqrtx.html