平台兼容性

fetch.js

本插件使用原生js 进行封装。使用promise 进行异步请求。

本插件分为简易版和dev版 简易版只需要简单配置即可直接使用dev版进行了更多功能集成

两种版本均提供dev 和 bulid 目录 区别为开发环境和生产环境区别为dev 代码中提供 错误提示以及 打印 和注释

bulid为压缩版只提供一般报错,开发者可以在生产环境中调试完将引入的插件改为bulid版。

一、dev版目录介绍

1. api.js 封装请求方法 对全局的请求进行统一管理

2. fetch.js 预处理和返回拦截

3. requestURL.js 包含全局的url 进行统一管理

集成功能说明
fetch.js参数说明
参数名 类型 必填 默认值 说明
url String --- 开发者服务器接口地址例
data Object 请求的参数
method String GET 同uni-app
CheckToken Boolen true 是否验证Token
ShowLoading Boolen true 请求是否显示loading
ShowMsg Boolen true 请求是否显示服务端返回提示
  1. 请求前拦截添加默认参数,验证token。
  2. 请求后拦截返回,处理异常、添加loading、文字提示

    20190614更新

    更新说明:本插件已经停止更新。请勿使用。如有问题自行解决。

    20190506更新

    更新说明修复了几个小bug

    使用方法

    使用前先配置

  3. 更改requestURL.js 的值将其改为你的
    const baseurl = "https://example.com/";
  4. 新增一个请求url,示例:
    export default {
        getinfo: `${baseurl}/api/getinfo`,
        inputinfor:`${baseurl}/getapi`,
    }
  5. 在api.js中新增一个请求方法示例:

    
    inputinfo: async function (prams) {
        let response = await request.Fetch(requestURL.getinfo,prams,'POST')
        return response;
    },
    

    4.在使用本插件前,本文档假定你的接口返回数据为如下格式

    {
        code:1,
        data:{
            //全部数据
        },
        msg:'提示信息'
    }

    请求之后会直接拦截code 为 -1的状态, 表示登录过期并跳转到登录页面。 请按照你的约定格式进行修改 5.拦截器配置 本插件只进行了token拦截

    CheckToken:function(){
    let token = store.state.$globalData.$userinfo.token;
    
    if(!!token){
    
            uni.showToast({
            title: '您还未登录',
            duration: 2000
        });
    
        // #ifdef APP-PLUS
        uni.navigateTo({
        url: '/pages/login/login'
    });
        // #endif
    
        // #ifdef MP-WEIXIN
        uni.reLaunch({
        url: '/pages/login/wxlogin'
    });
        // #endif
    }     
    }
    

    开始使用


    //在各个需要请求的地方引入本插件(按需引入)
    import request from '../../unts/api.js'

    //或者在main.js 中 (全局引入)
    import request from '../../unts/api.js'
    Vue.prototype.$request = request

3.使用request进行请求


 async ()=>{
    const data = await request.inputinfo({
        code:this.code,
        data:this.data
    })
    // doSomething...
 }

 // 或者
 request.inputinfo({
        code:this.code,
        data:this.data
        }).then(res =>{

            //doSomething...
        },err =>{

        //doSomething...    

        })
// 等同于如下代码

    uni.request({
        url: this.$url + 'api/register/wechat_login',
        data:{
            code:this.code,
            data:this.data
            }
        success: (ret) => {
            console.log(res.data.data)
        },
        flie:(res)=>{
            console.log(res)
        }
    });

tips:

  • 注意:该插件不配置无法使用。请看完文档在用。
  • 注意:本插件拦截了res 在页面中的请求回调实际上是res.data.data 可自行根据业务逻辑进行修改
  • 注意:本插件在请求前拦截在参数中加入了 区分客户端的参数的条件编译。可自行修改或删除
  • 注意:本插件默认有验证token 的步骤所以需要把token 导入进去或者删除fetch.js 中的 验证token过程
  • 插件中 (err)=>{ console.log(res)} 包含了全部的错误。如code 值不为0 404 403 500 等常见错误都会进入此回调中
  • 由于uni-app 不支持区分开发环境和生产环境本插件的showtoast 均为 开发环境中的提示。开发者可自行更改提示
  • 此插件另一个方法为CheckToken() 使用方法为 request.CheckToken() 此步骤可以直接验证token 但需要开发者把token 储存的位置导入插件中

隐私、权限声明

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

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

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

许可协议

MIT协议

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