主题
Request 网络请求
对 uni.request 提供默认配置、拦截器、重复请求控制和取消能力。
支持平台
以下为官网文档所列的平台支持情况,具体功能及版本限制请参见本页的平台说明。
| App-vue | App-nvue | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 | H5 | PC | 快手小程序 | 钉钉小程序 |
|---|---|---|---|---|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
基础用法
js
import http from '@/components/fui-request/index.js';
/** 获取列表,失败时由调用方处理 */
async function fetchItems() {
return http.get('/items', { data: { page: 1 } });
}在项目统一请求入口配置实际 host,并按后端响应格式处理 HTTP 状态和业务错误。
方法
| 方法 | 说明 |
|---|---|
| create(config) | 更新共享默认配置 |
| get(url, config) / post(url, config) | 发起 GET 或 POST 请求,参数放在 config.data |
| request(config) | 使用完整配置发起请求 |
| all(requests) | 等待多个 Promise,行为与 Promise.all 一致 |
| abort(cancelToken) | 通过请求标记中断请求 |
| interceptors.request.use / eject | 注册或移除请求拦截器 |
| interceptors.response.use / eject | 注册或移除响应拦截器 |
常用配置
| 配置 | 说明 | 本地默认值 |
|---|---|---|
| host / url | 接口域名与路径 | 空字符串 |
| data | 请求数据 | {} |
| header | 请求头 | JSON content-type |
| method | HTTP 方法 | POST |
| timeout | 超时时间,单位毫秒,大于 2000 才启用自定义超时 | 0 |
| prevent | 是否拦截相同请求 | false |
| keys | 判断重复请求时忽略的数据字段 | [] |
| brief | 是否只返回响应 data | false |
| cancelToken | 用于中断请求的唯一标记 | 空字符串 |
| showLoading / loadingText | 是否显示加载提示及提示文字 | true / 空字符串 |
| errorMsg | 网络失败时显示的提示 | 网络不给力,请检查网络设置! |
| arrayFormat | GET 数组编码:comma、repeat、brackets、indices | comma |
| withCredentials | H5 跨域请求是否携带凭据 | false |
| firstIpv4 | App Android 是否优先使用 IPv4 | false |
本地实现注意事项
create 修改的是共享实例配置,不返回独立实例。本地 use 没有返回拦截器标识,而 eject 按数组索引移除,接入时需留意这一差异。启用自定义超时时,源码以 { statusCode: -9999, errMsg: 'request:cancelled' } 结束 Promise;重复请求被拦截时会拒绝并返回 -9998。成功回调不自动按 HTTP 状态码判定业务成功,应在统一响应处理层检查。
事件
| 事件 | 说明 | 回调参数 |
|---|---|---|
| — | 无自定义事件 | — |
插槽
| 插槽 | 说明 |
|---|---|
| — | 官网未列出该组件的插槽 |