Vue+Node项目前端怎么拦截请求和响应

在使用Axios时,我们可以通过拦截器(interceptor)来对请求和响应进行拦截处理。Axios提供了interceptors属性来设置拦截器,它包含两个属性:request和response。

  1. 拦截请求:

当一个请求被发起时,我们可以在请求被发送之前拦截它,添加一些请求头或请求参数等。我们可以这样来实现它:

// 添加请求拦截器
axios.interceptors.request.use(function(config) {
    //  在发送请求之前做些什么
    config.headers.Authorization = localStorage.token;
    return config;
  }, function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

上述代码中,我们通过axios.interceptors.request.use方法来设置请求拦截器。在请求被发送之前,我们给config.headers添加了一个Authorization头部,这样就可以在请求中携带token

  1. 拦截响应:

当响应返回后,我们可以在调用thencatch之前,对响应进行拦截处理。我们可以这样来实现它:

// 添加响应拦截器
axios.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    if(response.status == 200){
        return Promise.resolve(response.data);
    }else{
        return Promise.reject(response);
    }
  }, function(error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });

上述代码中,我们通过axios.interceptors.response.use方法来设置响应拦截器。在响应被处理之前,我们对响应的状态码进行检查。如果响应状态码为200,我们就通过Promise.resolve方法返回响应数据,否则就通过Promise.reject方法直接返回响应对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值