使用uni-app封装request

简介: 封装request请求

使用uni-app封装ajax请求


export default {
    // 全局配置
    common: {
        baseUrl: "",
        header: {
            'Content-Type': 'application/json;charset=UTF-8',
        },
        data: {},
        method: 'GET',
        dataType: 'json',
        token: false
    },

    // 请求 返回promise
    request(options = {}) {
        // 组织参数
        options.url = this.common.baseUrl + options.url
        options.header = options.header || this.common.header
        options.data = options.data || this.common.data
        options.method = options.method || this.common.method
        options.dataType = options.dataType || this.common.dataType
        options.token = options.token === true ? true : this.common.token
        // 请求
        return new Promise((res, rej) => {
            // token验证
            if (options.token) {
                let token = uni.getStorageSync('dxToken')
                // 二次验证
                if (!token) {
                    uni.showToast({
                        title: '请先登录',
                        icon: 'none'
                    });
                    // token不存在时跳转
                                      uni.navigateTo({
                        url:"/pages/login/login"
                      })
                    return rej("请先登录")
                }
                // 往header头中添加token
                options.header.Authorization = token
            }
            // 请求中...
            uni.request({
                ...options,
                success: (result) => {
                    // 服务端失败
                    let data = result.data;
                    if (!data) {
                        uni.showToast({
                            title: data.msg || '服务端失败',
                            icon: 'none'
                        });
                        return rej(data)
                    } else {
                        res(data)
                    }
                },
                fail: (error) => {
                    uni.showToast({
                        title: error.errMsg || '请求失败',
                        icon: 'none'
                    });
                    return rej(error)
                }
            });
        })
    },
    // get请求
    get(url, options = {}) {
        options.url = url
        options.data = {}
        options.method = 'GET'
        return this.request(options)
    },
    // post请求
    post(url, data = {}, options = {}) {
        options.url = url
        options.data = data
        options.method = 'POST'
        return this.request(options)
    },
    // delete请求
    del(url, data = {}, options = {}) {
        options.url = url
        options.data = data
        options.method = 'DELETE'
        return this.request(options)
    },
}
  1. 在main.js引入使用,这样就挂载全局使用
import http from './utils/request.js'
Vue.prototype.$http = http

2.在组件中使用

this.$http
        .post(`${baseUrl}/api`, {
          esWordSearch: this.search,
          pageNo: 1,
          pageSize: this.pageSize,
        })

这样就完成接口封装了。方便了很多

相关文章
|
2月前
|
缓存 开发框架 移动开发
uni-app:下载使用uni&创建项目&和小程序链接&数据缓存&小程序打包 (一)
uni-app 是一个跨平台的开发框架,它允许开发者使用 Vue.js 来构建应用程序,并能够同时发布到多个平台,如微信小程序、支付宝小程序、H5、App(通过DCloud的打包服务)等。uni-app 的目标是通过统一的代码库,简化多平台开发过程,提高开发效率。 在这一部分中,我们将逐步介绍如何下载和使用uni-app、创建一个新的项目、如何将项目链接到小程序,以及实现数据缓存的基本方法。
|
4月前
|
存储 BI Android开发
全开源仿第八区H5APP封装打包分发系统源码
全开源仿第八区H5APP封装打包分发系统源码
155 4
|
4月前
|
Java Go Windows
【应用服务 App Service】App Service中上传文件/图片(> 2M)后就出现500错误(Maximum request length exceeded).
【应用服务 App Service】App Service中上传文件/图片(> 2M)后就出现500错误(Maximum request length exceeded).
|
4月前
|
存储 网络安全 数据中心
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
|
4月前
|
数据中心 容器
【Azure 应用服务】在创建App Service时,遇见“No available instances to satisfy this request. App Service is attempting to increase capacity.”错误
【Azure 应用服务】在创建App Service时,遇见“No available instances to satisfy this request. App Service is attempting to increase capacity.”错误
|
4月前
|
应用服务中间件 Linux 网络安全
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
|
4月前
|
JSON 数据格式 索引
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
|
6月前
|
存储 前端开发
uni-app 74聊天类封装(九)-更新指定聊天记录
在`uni-app`中封装聊天功能并更新指定的聊天记录,通常涉及几个关键步骤:聊天记录的数据结构、更新聊天记录的逻辑,以及如何在UI中反映这些更新。以下是一个基本的指南,用于在`uni-app`中实现
|
6月前
|
存储 移动开发 JavaScript
uni-app 64聊天类chat.js封装(一)
`uni-app` 是一个使用 Vue.js 开发所有前端应用的框架,可以编译到iOS、Android、H5以及各种小程序等多个平台。当你提到“64聊天类`chat.js`封装”时,我假设你希望了解如

热门文章

最新文章