如何实现一比一还原axios源码中的请求响应处理过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2399个文字,预计阅读时间需要10分钟。
上一章,我们开发了一些简单的代码,其中最核心的一个方法就是`buildURL`。这个方法的主要功能是将对象处理成查询参数的形式。虽然现在我们可以处理一些简单的请求,但首先是,我们无法。
上一章,我们开发了一些简单的代码,这部分代码最最核心的一个方法就是buildURL,应对了把对象处理成query参数的方方面面。虽然我们现在可以发起简单的请求了,但是第一,我们无法接收到服务器的响应,哦不对,其实在浏览器层面,response已经是接收到了的,只是代码里还拿不到response,因为我们还没写。第二,post的请求还没实现。而处理拿到的response实际上就是处理响应体和响应头。实现post请求,实际上就是实现请求体和请求头。今天我们就来实现这四个点的内容。
思考题:get请求可以发送body么?大家可以思考下,答案在结尾。不要提前看哦~
一、请求头和请求体的处理 处理请求的body,实际上就是XMLHttpRequest的send方法,它可以接收一个body作为参数,这个参数可以是Document、XMLHttpRequestBodyInit或者null。而XMLHttpRequestBodyInit可以是Blob,BufferSource(en-US),FormData,URLSearchParams,或者USVString对象。当然,我们最常用的就是传一个对象的场景,所以我们需要额外的处理一下,给传递的body的对象数据转换成JSON字符串。
上图,是MDN中send方法参数的详细描述。
本文共计2399个文字,预计阅读时间需要10分钟。
上一章,我们开发了一些简单的代码,其中最核心的一个方法就是`buildURL`。这个方法的主要功能是将对象处理成查询参数的形式。虽然现在我们可以处理一些简单的请求,但首先是,我们无法。
上一章,我们开发了一些简单的代码,这部分代码最最核心的一个方法就是buildURL,应对了把对象处理成query参数的方方面面。虽然我们现在可以发起简单的请求了,但是第一,我们无法接收到服务器的响应,哦不对,其实在浏览器层面,response已经是接收到了的,只是代码里还拿不到response,因为我们还没写。第二,post的请求还没实现。而处理拿到的response实际上就是处理响应体和响应头。实现post请求,实际上就是实现请求体和请求头。今天我们就来实现这四个点的内容。
思考题:get请求可以发送body么?大家可以思考下,答案在结尾。不要提前看哦~
一、请求头和请求体的处理 处理请求的body,实际上就是XMLHttpRequest的send方法,它可以接收一个body作为参数,这个参数可以是Document、XMLHttpRequestBodyInit或者null。而XMLHttpRequestBodyInit可以是Blob,BufferSource(en-US),FormData,URLSearchParams,或者USVString对象。当然,我们最常用的就是传一个对象的场景,所以我们需要额外的处理一下,给传递的body的对象数据转换成JSON字符串。
上图,是MDN中send方法参数的详细描述。

