更新记录

0.1.1(2023-02-10) 下载此版本

0.1.1

  • 解决仅当status code为200才认为成功的问题

0.1.0

  • 移除模式支持
  • 更改请求拦截器逻辑

0.0.2

  • 添加请求中断方法

0.0.1

  • 初始版本

0.1.0(2021-06-16) 下载此版本

  • 移除模式配置,简化调用
  • 更改请求拦截器逻辑,不再检查token验证

0.0.2(2019-06-24) 下载此版本

添加请求中断方法

查看更多

平台兼容性

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

dt-request - uniapp request组件封装

引入

将下载的组件目录放入common目录,或其他app目录。

作为vue组件

// 导入组件
import { HttpWidget } from './common/dt-request';
Vue.use(new HttpWidget());
// 使用组件
this.$http
    .post('/auth', { username: 'demo', password: 'demo' })
    .then((response) => {})
    .catch((response) => {});

作为独立组件

// 导入组件
import { Http } from './common/dt-request';
const http = new Http();
// 使用组件
http.post('/auth', { username: 'demo', password: 'demo' })
    .then((response) => {})
    .catch((response) => {});

配置说明

所有配置写在config.js文件里

  • baseUrl 根路径
  • options 请求参数,用以覆盖默认参数
  • interceptor 拦截器
    • request: 请求拦截器,形如function(options) {},其中options为请求对象
    • response: 响应拦截器,形如function(response) {},其中response为响应对象

使用

// HEAD, OPTIONS, DELETE调用方法相同
// 第一个参数是接口的路径
// 第二个参数可选,可以用来覆盖请求参数
this.$http.delete('/users/1', {header: {Authorization: 'Bearer json.web.token'}});

// GET, POST, PATCH, PUT调用方法相同
// 第一个参数是接口的路径
// 第二个参数是请求数据
// 第三个参数可选,可以用来覆盖请求参数

// 创建用户名和密码都是demo的用户
this.$http.post('/users', {username: 'demo', password: 'demo'}, {header: {'Content-Type': 'application/json'}});

// 获取id为1的用户详情
this.$http.get('/users/1');

// 获取用户名为demo的所有用户
this.$http.get('/users', {username: 'demo'});

// 更新id为1的用户的用户名
this.$http.patch('/users/1', {username: 'new_name'});

request方法

依然可以使用request方法直接传请求参数

this.$http.request({
    name: 'user.detail',
    params: {id: 1},
});

// 或者
this.$http.request({
    url: '/users/1',
});

this.$http.request({
    url: 'http://api.cn/test', // url为完整地址时,baseUrl则不会附加到地址上
});

中断请求

使用对象提供的abort()方法可以中断请求

// 发起请求
this.$http.request({
    name: 'user.detail',
    params: {id: 1},
});

// 终端请求
this.$http.abort();

隐私、权限声明

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

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

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

许可协议

MIT协议

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