axios的拦截器原理及应用?
得分点 请求(request)拦截器、响应(response)拦截器、Promise控制执行顺序、每个请求带上相应的参数、返回的状态进行判断(token是否过期)
axios的拦截器的应用场景
请求拦截器用于在接口请求之前做的处理,比如为每个请求带上相应的参数(token,时间戳等)。
返回拦截器用于在接口返回之后做的处理,比如对返回的状态进行判断(token是否过期)。
axios为开发者提供了这样一个API拦截器。
拦截器分为 请求(request)拦截器
和 响应(response)拦截器
。
拦截器原理:创建一个chn数组,数组中保存了拦截器相应方法以及
dispatchRequest
(dispatchRequest
这个函数调用才会真正的开始下发请求),把请求拦截器的方法放到chn数组中dispatchRequest
的前面,把响应拦截器的方法放到chn数组中dispatchRequest
的后面,把请求拦截器和相应拦截器forEach
将它们分unshift
,push
到chn数组中,为了保证它们的执行顺序,需要使用promise
,以出队列的方式对chn数组中的方法挨个执行。
Axios 是一个基于
promise
的 HTTP 库,可以用在浏览器和node.js
中。从浏览器中创建XMLHttpRequests
,从 node.js 创建http
请求,支持Promise API
,可拦截请求和响应,可转换请求数据和响应数据,可取消请求,可自动转换JSON 数据
,客户端支持防御XSRF
。