目录
一、http.js 和 api.js
http.js是axios实例封装对象,用于创建axios默认参数,创建请求拦截器,响应拦截器。
api.js是封装axios网络请求的,通过导出对象,并在main.js中导入,挂载,从而直接调用封装的axios向服务器发送网络请求。
二、请求拦截器
请求拦截器主要预处理一些请求信息,这里的几个关键点。
1、我们发送未封装的网络请求时该请求拦截器也可以进行拦截,即我们后续会讲到的refreshToken的请求。
2、由于我们封装axios网络请求时会设置baseURL,所以封装过的axios网络请求的url只有一部分,而未封装的请求的url是完整的,所以在判断url时出现上图的情况,这种情况你也可以自己打印config来查看到。
3、请求头的问题。登录请求不需要携带token,refreshToken请求的请求头需要携带之前存储的refreshToken而不需要token,其他请求携带token。
4、refreshToken请求何时执行的问题,我们在上篇文章中讲到后端会给token和refreshToken设置时效,当token过期后,我们再发送网络