当前位置:   article > 正文

axios拦截器的使用

axios拦截器的使用

axios拦截器官网:axios中文文档|axios中文网 | axios

axios拦截器分为请求拦截器响应拦截器

一 . 请求拦截器应用场景 :可以给所有的axios请求设置请求头

  1. axios.interceptors.request.use(
  2. // config:请求报文信息
  3. function (config) {
  4. // 在发送请求之前做些什么
  5. // 如果有token,就在请求头中添加token
  6. if (localStorage.getItem('token')) {
  7. config.headers.Authorization = localStorage.getItem('token')
  8. }
  9. return config
  10. },
  11. function (error) {
  12. // 对请求错误做些什么
  13. return Promise.reject(error)
  14. }
  15. )

分析 : 浏览器发送请求,请求拦截器会先进行拦截,并判断硬盘(本地存储)中是否有token,如果有则在请求头中添加token,因为axios请求都会先走请求拦截器,则只需要在请求拦截器中给请求头添加token,其它页面均生效.

二 . 响应拦截器应用场景 :可以对请求错误统一处理:例如弹出提示框

  1. axios.interceptors.response.use(
  2. function (response) {
  3. // 对响应数据做点什么
  4. return response
  5. },
  6. function (error) {
  7. // 对响应错误做点什么
  8. // 如果是401错误,说明token没有 或 过期,就跳转登录页
  9. if( error.response.status === 401 ){
  10. alert('请先登录')
  11. location.href = './login.html'
  12. }else{//其他的错误,就弹出提示框
  13. Toast.fail(error.response.data.message)
  14. }
  15. return Promise.reject(error)
  16. }
  17. )

分析 : 服务器响应时会先经过响应拦截器拦截,并统一对错误进行处理,例如:判断错误状态码,弹出对应提示框,对于其它错误,则根据获得的响应信息弹框即可.因为服务器响应时一定会先走响应拦截器,则只需要在axios拦截器中设置对应的响应数据,其余页面均生效.

三.响应拦截器与浏览器,服务器的工作流程

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57126?site
推荐阅读
相关标签
  

闽ICP备14008679号