Skip to content

axios的拦截器原理及应用?

得分点 请求(request)拦截器、响应(response)拦截器、Promise控制执行顺序、每个请求带上相应的参数、返回的状态进行判断(token是否过期)

axios的拦截器的应用场景

请求拦截器用于在接口请求之前做的处理,比如为每个请求带上相应的参数(token,时间戳等)。

返回拦截器用于在接口返回之后做的处理,比如对返回的状态进行判断(token是否过期)。

axios为开发者提供了这样一个API拦截器。

拦截器分为 请求(request)拦截器响应(response)拦截器

拦截器原理:创建一个chn数组,数组中保存了拦截器相应方法以及dispatchRequestdispatchRequest这个函数调用才会真正的开始下发请求),把请求拦截器的方法放到chn数组中dispatchRequest的前面,把响应拦截器的方法放到chn数组中dispatchRequest的后面,把请求拦截器和相应拦截器forEach将它们分unshift,push到chn数组中,为了保证它们的执行顺序,需要使用promise,以出队列的方式对chn数组中的方法挨个执行。


Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。从浏览器中创建 XMLHttpRequests,从 node.js 创建 http 请求,支持 Promise API,可拦截请求和响应,可转换请求数据和响应数据,可取消请求,可自动转换 JSON 数据,客户端支持防御 XSRF