更新记录

1.1.2(2023-08-09)

优化

1.1.1(2023-08-09)

优化

1.1.0(2023-07-19)

重写

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

超级轻量request请求函数,支持多域名、支持自定义header,支持vue2,vue3,nvue,支持async+await

安装教程 使用 HBuilderX 导入插件

使用方法:

1、最重要!!!和pages目录同级新建config文件夹,下面新建config.js 内容如下

export default {
    baseUrl: '', // 接口地址前缀 无需设置
    otherUrl: 'http://other.com', // 其他接口地址前缀,为了兼容多个域名或者第三方服务接口
    testUrl: 'http://test.com', // 开发地址前缀
    productionUrl: 'http://pro.com', // 正式地址前缀
    loginPage: '/pages/login/login', // 服务器statusCode返回401强制跳转的登录页
    headerKey: 'Authorization', // header的名称一般是Authorization或者token,以你们项目为准(如果不需要设置请求头,就把headerKey和headerValue去掉)
    headerValue: uni.getStorageSync('token') || '', // header的值 在登录成功后一定要将token赋值给config.headerValue,并且存到缓存
    showErrorMessage(res) { // 自定义后端的报错提示
        if (res.code === 99999) {
            return '系统错误'
        }
    }

}

2、在App.vue中写如下代码(自动识别运行环境,为了无需打包时再修改接口前缀)

import config from '@/config/config'
onLaunch: function() {
        if (process.env.NODE_ENV === 'development') {
            // 开发环境 运行
            // #ifdef H5
            config.baseUrl = location.origin; 
            // #endif
            // #ifndef H5
            config.baseUrl = config.testUrl;
            // #endif
        } else {
            // 生产环境 发行
            config.baseUrl = config.productionUrl;
        }
    }

3、h5开发配置代理,解决开发时的浏览器跨域问题(如不开发h5,请跳过)

// 根目录创建vue.config.js 代码如下

module.exports = {
    devServer: {
        disableHostCheck: true,
        proxy: {
            "/api/": {
                target: "http://192.168.1.132:8000", //开发
                // target: "https://www.baidu.com", //正式
                changeOrigin: true,
                pathRewrite: {
                    "^/prefix": ""
                }
            }
        }
    },
}

和config目录同级新建api文件夹下新建login.js

import config from '@/config/config'
import request from '@/uni_modules/rt-request/js_sdk/index'
/**
 * @function request
 * @param {string} api - 接口地址
 * @param {string} method 默认值为GET,method支持GET POST PUT DELETE等方法(请注意各个平台兼容性)
 * @param {string} data - 参数
 * @param {string} contentType - 默认为json,也支持form (application/x-www-form-urlencoded)
 * @param {string} url - 接口前缀,默认值为config.baseUrl 也支持其他例如config.baseUrl2
 *
 */

//GET请求示例
export function login(data){
    return request('/transport_order/driver/wechat_login',data)
}
//POST请求示例(contentType是application/json)
export function getWeather(data){
    return request('/api/get_weather','POST',data)
}
// POST请求示例(contentType是application/x-www-form-urlencoded)
export function getMap(data){
    return request('/transport_order/driver/get_map','POST',data,'form')
}

// 其他域名请求
export function getBaidu(data){
    return request('/transport_order/driver/get_map','POST',data,'json',config.baseUrl2)
}

在页面vue中使用vue2写法

        import { login } from '@/api/login'
        data() {
                return {
                        info:{
                            name:'ssss',
                            password:'123456'
                        }
                    }
                },
                methods:{
                    async toLogin() {
                        const res = await login(this.info)
                        console.log(res)
                    }

                }

vue3 setup写法


    <script setup>
        import { reactive,toRefs } from 'vue'
        import { login } from '@/api/login'
        const data = reactive({
            info:{
                name:'ssss',
                password:'123456'
            }
        })

        // 登录
        const toLogin = async () => {
            const res = await login(data.info)
            console.log(res)
        }

    </script>

如果插件对您有一点帮助,请给个五星好评,感谢支持

如有不懂 请加qq 965969604

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问