axios二次封装,整体上可以分成2部分,基础配置和请求响应拦截器。
先说基础配置,比如baseUrl和超时时间。
baseUrl,可以读取环境变量设置的值,这样可以动态设置地址。
再说请求拦截器,主要是设置请求头和添加额外的功能,
设置请求头,比如设置token,先判断有没有token,有就加上。
添加额外的功能,比如像添加进度条,在请求拦截器中开启进度条。
再就是响应拦截器,响应拦截器需要先区分响应成功和响应失败,
响应成功就是状态码2xx,响应失败就是非2xx的。
响应成功再区分业务逻辑成功还是失败,这个根据后端返回的code判断,一般200或者20000代表成功,
业务逻辑成功的话可以分离出后端真正返回的数据,response.data.data,方便后面调接口直接拿到要用的数据。
业务逻辑失败的话,就给出错误提示,返回失败的Promise,把错误往后传,传给组件,组件再处理错误,这种举个例子,比如说登录功能,账号对的,密码写错了,HTTP响应状态码是200,但是业务逻辑code不是200或20000这种就需要处理。
再说响应失败,就是状态码不是2xx,这种可以对特定的状态码做逻辑处理,比如说401让它跳登录页,其他如果没有特殊逻辑的话就统一给它错误提示,再返回失败的Promise,把错误往后传递,让组件内部去处理错误。