2019-04-13 拦截器

拦截器

请求拦截器

拦截请求,然后查询是否有token,如果有则添加到请求头(这样所有的请求就都有token),如果没有则不添加

// 添加一个请求拦截器
axios.interceptors.request.use((config) => {
  // 获取localStorage中的token如果有则添加,如果没有则不添加
  const token = localStorage.getItem('token')
  token ? config.headers.common['Authorization'] = "Bearer " + token : null
  return config
}, (err) => {
  return Promise.reject(err)
})

响应拦截器

拦截响应结果,如果为401,则跳转到登录,router在axios.js不存在,需要我们手动引入

// 添加一个响应拦截器
axios.interceptors.response.use((res) => {
  if (res.data.res_code === 401) {
    // 跳转到登录页
    router.push('/login')
  }
  // 对响应数据做点什么
  return res;
}, (error) => {
  // 对响应错误做点什么
  return Promise.reject(error);
});

token哪来的

token是在登录操作中获取到的,获取到token后,将其存储在storage里供以后使用

token在使用时需要加到header,并不是所有的都需要加Bearer前缀

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容