vue项目中axios如何捕捉http状态码为401错误问题

 更新时间:2024年03月08日 16:17:56   作者:weixin_49696014  
这篇文章主要介绍了vue项目中axios如何捕捉http状态码为401错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue axios捕捉http状态码为401错误

项目开发中,需要判断一下token是否有效,如果是一个无效的token,那么后台后返给我http状态码为401的错误,注意这里是http状态码,也就说只有是2xx系列的才算是请求成功,所以返回的401,此时浏览器肯定时报错的,如果你正常的逻辑去拿包,肯定是拿不到的。

这种情况下,就要用到axios的响应拦截了

在main入口文件下写

// 响应拦截
axios.interceptors.response.use(function (response) {
// 这个是处理响应成功的结果,也就是说响应状态码为2XX系列的
  NProgress.done()	// 这个忽略,只是一个响应的进度条
  return response;
},function (error) {
// 这个是处理响应失败的,也就是响应错误的,在这个箭头函数中,才能拿到401状态下的包
  NProgress.done()
  if (error.response.status === 401) {
    // 接口的根地址截取下来,判断
    const url = error.response.config.url
    const flag = url.substring(0,url.indexOf('/'))
    // 判断地址是哪一个页面的,push到相应的错误页面
    if(flag == 'roster'){
      router.push({
        path:'/rosterError',
        query:{
          info: error.response.data.message
        }
      })
    }
    if(flag == 'user'){
      router.push({
        path:'/AllUserinfoEerror',
        query:{
          info: error.response.data.message
        }
      })
    }
      
  }
  return Promise.reject(error);
});

vue全局响应拦截器401报错

在处理全局响应拦截器的时候,处理401,错误,尝试了各种方法,但是都没有效果。

最终,各种方式试过了,修改axios的版本,解决了问题。

axios": "0.18.1"

人麻了!!!!!

// 添加响应拦截器
instance.interceptors.response.use((response) => {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么 (默认axios会多包装一层data,需要响应拦截器中处理一下)
  const res = response.data
  return res
}, (error) => {
  // 超出 2xx 范围的状态码都会触发该函数。
  if (error.response.status === 401) {
    console.log('登录状态无效,请重新登录')
    return Promise.reject(error)
  }
  Message.error(error.message)
  return Promise.reject(error)
})
``

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)

    vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)

    这篇文章主要介绍了vue项目使用高德地图的定位及关键字搜索功能的实例代码,也是小编踩了无数坑总结出来的经验,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Vue 禁用浏览器的前进后退操作

    Vue 禁用浏览器的前进后退操作

    这篇文章主要介绍了Vue 禁用浏览器的前进后退操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue自定义表单验证(rule,value,callback)使用详解

    Vue自定义表单验证(rule,value,callback)使用详解

    这篇文章主要介绍了Vue自定义表单验证(rule,value,callback)使用详解,今天我们讲一讲自定义验证规则具体使用场景和它的三个参数意思和使用,需要的朋友可以参考下
    2023-07-07
  • 解决element-ui的table表格控件表头与内容列不对齐问题

    解决element-ui的table表格控件表头与内容列不对齐问题

    这篇文章主要介绍了解决element-ui的table表格控件表头与内容列不对齐问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Vue2实现数字滚动翻页效果的示例代码

    Vue2实现数字滚动翻页效果的示例代码

    这篇文章主要为大家详细介绍了Vue2如何实现数字滚动翻页效果,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-03-03
  • vue3递归组件封装的全过程记录

    vue3递归组件封装的全过程记录

    组件是可以在自己的模板中调用自身的,不过他们只能通过name选项来做这件事,下面这篇文章主要给大家介绍了关于vue3递归组件封装的相关资料,需要的朋友可以参考下
    2021-09-09
  • web前端vue filter 过滤器

    web前端vue filter 过滤器

    vue的过滤器通常用在一些常见的文本格式化,过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。本文给大家介绍了web前端vue filter 过滤器的相关知识,感兴趣的朋友一起看看吧
    2018-01-01
  • vue中window.addEventListener(‘scroll‘, xx)失效的解决

    vue中window.addEventListener(‘scroll‘, xx)失效的解决

    这篇文章主要介绍了vue中window.addEventListener(‘scroll‘, xx)失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • vue中配置后端接口服务信息详解

    vue中配置后端接口服务信息详解

    这篇文章主要介绍了vue中配置后端接口服务信息详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • vue使用axios跨域请求数据问题详解

    vue使用axios跨域请求数据问题详解

    这篇文章主要为大家详细介绍了vue使用axios跨域请求数据的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10

最新评论