首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于TypeScript封装Axios笔记(七)

common 和一些请求 method 字段,common 表示对于任何类型请求都要添加该属性,而 method 表示只有该类型请求方法才会添加对应属性。...,并且让 Axios 构造函数接受一个 initConfig 对象,把 initConfig 赋值 this.defaults。...、URLSearchParams、Blob 等类型作为 xhr.send 方法参数,而且在 transform 过程中可以修改 headers 对象。...,其中 fns 代表一个或者多个转换函数,内部逻辑很简单,遍历 fns,执行这些转换函数,并且把 data 和 headers 作为参数传入,每个转换函数返回 data 会作为下一个转换函数参数 data...: AxiosRequestConfig): AxiosInstance 3} create 函数可以接受一个 AxiosRequestConfig 类型配置,作为默认配置扩展,也可以接受不传参数

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

教你如何让 Axios 更加灵活可复用

: (err: any) => any } // 自定义传入参数 export interface RequestConfig extends AxiosRequestConfig { interceptors...: RequestInterceptors } 定义好基础拦截器后,我们需要改造我们传入参数类型,因为axios提供AxiosRequestConfig是不允许我们传入拦截器,所以说我们自定义了...AxiosRequestConfig类型修改为RequestConfig允许传递拦截器;然后我们在类拦截器中将接口请求数据进行了返回,也就是说在request()方法中得到类型就不是AxiosResponse...我们查看axiosindex.d.ts中,对request()方法类型定义如下: // type.ts request, D = any>...(config: AxiosRequestConfig): Promise; 也就是说它允许我们传递类型,从而改变request()方法返回值类型,我们代码如下: // index.ts

89620

Axios封装思想及实践(TS版本)

)中config类型AxiosRequestConfig,具体见官网:请求配置 | Axios 中文文档 (axios-http.cn) 常用有几个:url,method,baseUrl,data...,timeout等 默认配置可以进行升级改造,新建一个接口实现AxiosRequestConfig,在其中添加一些新配置 AxiosResponse---axios默认返回值类型,接收泛型T...默认为any,代表是实际接收到返回数据类型,一般会将T设置为IDataType。...),而data类型即为IDataType 封装统一使用原生实例request方法来进行 //T默认是any类型,返回值默认是AxiosResponse request<T = any,...此处就不在做具体封装,仅做抛砖引玉作用! 补充:拦截执行顺序 对于axios封装还有很多,比如关于重复请求封装、参数序列化等,按需进行即可。ps:主要是我还不会,哈哈。。

2.1K30

基于TypeScript封装Axios笔记(三)

,把 data 转换成了 JSON 字符串,但是数据发送到服务端时候,服务端并不能正常解析我们发送数据,因为我们并没有请求 header 设置正确 Content-Type。...实现请求 header 处理逻辑 在这之前,我们先修改一下 AxiosRequestConfig 接口类型定义,添加 headers 这个可选属性: types/index.ts 1export interface...: any 7} index.ts: 1function processConfig (config: AxiosRequestConfig): void { 2 config.url = transformURL...headers 时候,会自动为其添加 Content-Type:application/json;charset=utf-8;同时我们发现当 data 是某些类型如 URLSearchParams...处理响应 data 需求分析 在我们不去设置 responseType 情况下,当服务端返回给我们数据是字符串类型,我们可以尝试去把它转换成一个 JSON 对象。

55310

基于TypeScript封装Axios笔记(八)

cancelToken 属性,CancelToken 构造函数参数支持传入一个 executor 方法,该方法参数是一个取消函数 c,我们可以在 executor 方法执行内部拿到这个取消函数...c,赋值给我们外部定义 cancel 变量,之后我们可以通过调用这个 cancel 方法来取消请求。...,定义一个 cancel 变量实例化一个 CancelToken 类型对象,然后在 executor 函数中,把 cancel 指向参数 c 这个取消函数。...isCancel: (value: any) => boolean 15} 其中 Cancel 是实例类型接口定义,CancelStatic 是类类型接口定义,并且我们 axios 扩展了多个静态方法...接着我们对 CancelToken 类中 reason 类型做修改,把它变成一个 Cancel 类型实例。 先修改定义部分。

69710

【愚公系列】2022年05月 vue3系列 axios请求封装(TS版)

) 4.7 params(常用,只有get请求设置params,其他请求需设置params,即只有get请求参数位于url后,其他请求参数都在请求体中) 4.8 data(常用) 4.9 timeout...参数 * @returns Promise 异步请求 */ public static query( resource: string, params: AxiosRequestConfig...* @param params: AxiosRequestConfig 参数 * @returns Promise */ public static update( resource...参数 * @returns Promise */ public static put( resource: string, params: AxiosRequestConfig...4.7 params(常用,只有get请求设置params,其他请求需设置params,即只有get请求参数位于url后,其他请求参数都在请求体中) params选项是要随请求一起发送请求参数--

3.1K20

隔离 HTTP 依赖稳定运行 e2e 测试用例一种实现

(); }); it('login by account & pwd', async (done) => { const res = await userLogin(axios as any...login by account & pwd after change pwd', async (done) => { const res = await userLogin(axios as any...所以这里问题是: 一个外部 HTTP 依赖,要记录多种场景请求参数/返回数据; 记录数据和测试用例匹配; 测试用例运行时,能根据命令,执行录制外部 HTTP 请求,或者读取已经录制 HTTP 请求...完成这个功能函数就是上面的 getHashFromConfig: function getHashFromConfig(config: AxiosRequestConfig): string {...其实,我们记录外部 HTTP 接口请求和响应数据,除了用于 mock,还可同时用于推导类型,免除手动书写 interface。 import mockData from '..

1.2K20

【Vue3+TypeScript】CRM系统项目搭建之 — Axiox 网络请求封装

这是因为GET和POST请求在语义和使用上有一些不同: 语义上不同: GET请求:通常用于请求数据,它语义是“获取”或“查询”。浏览器会把GET请求结果(响应体)直接展示用户。...POST请求:通常用于提交数据,它语义是“提交”或“更新”。POST请求结果通常是一个操作结果,而不是直接展示用户数据。...这是因为GET请求设计初衷就是为了从服务器获取数据,而不是提交数据。GET请求查询参数应该放在URL查询字符串中,而不是请求体中。...POST请求:POST请求通常包含请求体,用于提交数据服务器。服务器会处理POST请求请求体来获取提交数据。...: (err: any) => any } export interface HYRequestConfig extends AxiosRequestConfig

12310
领券