Skip to content

后端资源请求

@jiess/http/request是用于请求后端资源的工具函数

与JiessHttp的关系

JiessHttp 是基于本模块的封装,JiessRequest 更偏底层,功能更单纯

准备工作

使用包管理器,安装依赖

bash
# 安装工具模块
npm i @jiess/http -S
# -------------------------------------------------

# 引入未经babel转化的版本(体积小,建议高版本项目中使用)
import JiessRequest from '@jiess/http/request';

# 引入babel转化的版本(体积大,建议低版本项目中使用)
import JiessRequest from '@jiess/http/JiessRequest.babel';

使用cdn引入js库

bash
# 引入未经babel转化的版本(体积小,建议高版本项目中使用)
<script src="//cdn.jsdelivr.net/npm/@jiess/http/request.js"></script>

# 引入babel转化的版本(体积大,建议低版本项目中使用)
<script src="//cdn.jsdelivr.net/npm/@jiess/http/JiessRequest.babel.js"></script>

使用cdn引入后,会在全局挂载名为JiessRequest的实例对象

特点

  • 自动降级:优先使用fetch API,若不支持,则降级使用 Ajax
  • restful:支持 restful api 接口规范,以及响应数据拦截
  • 防抖:默认启用,短时间内调用相同接口,需要等待初始接口响应

防抖

  • 短时间内对同参数(地址,方法和参数均相同)的同一接口的调用,会视为重复请求
  • 重复请求时仅首次会真实的调用后端接口,其他的重复接口的回调会放入等待队列
  • 首次请求有了响应,响应值会自动分发给所有的接口回调,有效降低服务器压力

配置对象

本模块导出一个函数,调用该函数时需要请求配置对象

配置属性

属性说明类型默认值可选参数
url完整的接口地址(含baseURL)String————
method请求方法StringGET——
typecontent-type协议类型json200json/text/form/其他/无
headers请求头对象Object{}——
queryurl请求参数Object{}——
bodybody请求参数{}get——
useFetch是否启用fetch APIBooleantrue——
useCache是否启用缓存Booleantrue——
httpCacheParam缓存配置——————

type

type是对请求头中content-type的简写,以下是简化方案

type值对应的content-type值默认备注
jsonapplication/jsonbody数据为JSON字符串
textapplication/textbody数据为字符串类型
formapplication/x-www-form-urlencodedbody数据为键值表单数据
其他原样使用该数据其他字符串数据
————不指定协议,如上传附件

type优先级较低

若header头中显式指定content-type,则优先使用该显式的定义,type不生效

httpCacheParam

缓存配置对象,即防抖配置,记录缓存和防抖相关的配置

  • 【waitTime】
  • 默认:0
  • 类型:String
  • 详细 缓存的时间间隔的阈值

对于请求太快,又需要适当等待(如Loading加载),可指定等待时长,再响应数据