请求拦截器 请求响应器

文章介绍了在使用Vue、React等前端框架开发时,如何利用axios库的拦截器功能。请求拦截器常用于在请求发送前添加token或设置超时时间,而响应拦截器则用于处理如token过期、后端异常等响应后的逻辑。示例代码展示了具体实现方式。
摘要由CSDN通过智能技术生成

在使用像 Vue、React 等前端框架进行开发时,我们通常会使用一些类似于 axios、request 等库来进行网络请求。这些库通常都具有拦截器(interceptor)的功能,用于在请求发送前和响应返回后拦截、修改请求或响应的一些相关参数或数据。下面让我们简单介绍一下请求拦截器和响应拦截器的使用方法。

请求拦截器

请求拦截器可以在请求发送前对请求进行拦截,并进行一些统一的处理或修改操作,比如向请求头部添加 token、添加请求超时时间等。在 axios 中,我们可以使用 axios.interceptors.request.use 方法添加拦截器。下面是一个示例:

import axios from 'axios';

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 添加 token
  config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');
  // 添加超时时间
  config.timeout = 10000;
  return config;
}, function (error) {
  // 请求错误时进行处理
  return Promise.reject(error);
});

在上面的代码中,我们通过调用 axios.interceptors.request.use 方法添加了一个请求拦截器。这个请求拦截器会在请求发送前,往请求头添加一个 Authorization 字段,该字段的值为从 localStorage 中获取到的 token,同时在 config 对象中添加了一个 timeout 字段,该字段对应的值表示请求的超时时间为 10000 毫秒。

响应拦截器

响应拦截器可以在请求响应返回后对响应进行拦截,并进行一些统一的处理或修改操作,比如判断 token 是否过期、捕获后端异常等。在 axios 中,我们可以使用 axios.interceptors.response.use 方法添加拦截器。下面是一个示例:

import axios from 'axios';

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 判断 token 是否过期并进行处理
  if (response.data.code === 401) {
    // 跳转到登录页面
    window.location.href = '/login';
  }
  // 捕获后端异常并进行处理
  if (response.data.code !== 0) {
    // 弹出错误提示框等
    console.error(response.data.msg);
  }
  return response;
}, function (error) {
  // 对响应的错误进行处理
  return Promise.reject(error);
});

在上面的代码中,我们通过调用 axios.interceptors.response.use 方法添加了一个响应拦截器。这个响应拦截器会在请求返回后,判断返回的状态码是否为 401,如果是则跳转到登录页面;同时还会捕获后端的异常信息,如果返回的状态码不为 0,则弹出一个错误提示框等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值