在前端开发中,我们常常需要发送网络请求来获取数据。而使用 npm 作为包管理工具,则可以通过安装第三方库来简化我们的代码实现。
min-request 是一个基于 Promise 的 HTTP 请求库,它支持浏览器和 Node.js 环境,并提供了许多实用的功能。本文将详细介绍如何使用 min-request。
安装
使用 npm 安装 min-request:
--- ------- -----------
基本用法
使用 min-request 发送 GET 请求:
----- - ------- - - ---------------------- --------- ---- --------------------------------------------- ------- ----- ---------------- -- - -------------------------- --
使用 min-request 发送 POST 请求:
----- - ------- - - ---------------------- --------- ---- --------------------------------------------- ------- ------- ----- - ------ ------ ----- ------ ------- - - ---------------- -- - -------------------------- --
配置项
min-request 提供了一些配置项来满足各种需求。
请求方式(method)
请求方式有 GET、POST、PUT、DELETE、HEAD、OPTIONS 等,可以通过传递 method
属性来指定。
--------- ---- --------------- ------- ------- ----- - ---- ----- - --
请求头(headers)
可以通过传递 headers
属性来设置请求头。
--------- ---- --------------- -------- - --------------- ------------------ -- ----- - ---- ----- - --
超时时间(timeout)
可以通过传递 timeout
属性来设置超时时间,单位为毫秒。
--------- ---- --------------- -------- ---- --
响应类型(responseType)
可以通过传递 responseType
属性来设置响应类型,可选值有:text、json、arraybuffer、blob、document。
--------- ---- --------------- ------------- ------ --
拦截器
min-request 支持拦截器,可以在请求之前或响应之后做一些操作。拦截器分为请求拦截器和响应拦截器。
请求拦截器(requestInterceptors)
可以通过传递 requestInterceptors
数组来设置请求拦截器,每个拦截器都是一个函数,接收一个 config 对象作为参数,并返回一个新的 config 对象。
--------- ---- --------------- -------------------- - ------ -- - -- ------ ------ ---- ------ ------ - - --
响应拦截器(responseInterceptors)
可以通过传递 responseInterceptors
数组来设置响应拦截器,每个拦截器都是一个函数,接收一个 response 对象作为参数,并返回一个新的 response 对象。
--------- ---- --------------- --------------------- - -------- -- - -- ------ -------- ---- ------ -------- - - --
示例
下面是一个完整的示例,展示了如何使用 min-request 发送 GET、POST 请求,并使用请求拦截器和响应拦截器。
----- - ------- - - ---------------------- -- ---------- ------------------------------------ -- - -- ------ ------ ---- --------------------- ------- ------ ------ -- -- ---------- --------------------------------------- -- - -- ---- ----------------------------------------------------------- ---------- ---------------------------------------------------------------------------------------