当前位置:首页 > React

react里面如何做axios拦截

2026-01-26 05:56:56React

在React中使用Axios拦截器可以统一处理请求和响应,例如添加认证头、错误处理等。以下是具体实现方法:

react里面如何做axios拦截

创建Axios实例并设置拦截器

import axios from 'axios';

const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 5000
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  response => {
    return response.data;
  },
  error => {
    if (error.response.status === 401) {
      // 处理未授权情况
    }
    return Promise.reject(error);
  }
);

export default instance;

在组件中使用自定义实例

import React, { useEffect } from 'react';
import api from './axiosInstance'; // 导入自定义实例

function MyComponent() {
  useEffect(() => {
    api.get('/users')
      .then(data => console.log(data))
      .catch(error => console.error(error));
  }, []);

  return <div>Axios拦截器示例</div>;
}

全局错误处理

对于需要全局捕获的错误,可以在响应拦截器中统一处理:

instance.interceptors.response.use(
  response => response,
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 404:
          alert('请求资源不存在');
          break;
        case 500:
          alert('服务器错误');
          break;
        default:
          alert('未知错误');
      }
    }
    return Promise.reject(error);
  }
);

取消请求

在组件卸载时取消pending请求:

import { CancelToken } from 'axios';

useEffect(() => {
  const source = CancelToken.source();

  api.get('/users', {
    cancelToken: source.token
  });

  return () => {
    source.cancel('组件卸载取消请求');
  };
}, []);

以上方法实现了请求和响应的拦截处理,可根据实际需求调整拦截逻辑。注意拦截器执行顺序是后添加的先执行。

react里面如何做axios拦截

标签: 如何做里面
分享给朋友:

相关文章

vue里面动态路由实现

vue里面动态路由实现

动态路由实现方法 在Vue中实现动态路由通常涉及两种场景:基于用户权限的动态路由和基于参数的路由匹配。以下是具体实现方式: 基于用户权限的动态路由 定义静态路由与动态路由 静态路由为无需权限的公共…

react如何做app

react如何做app

React 开发移动应用的两种主流方式 React Native 是目前最流行的基于 React 的跨平台移动应用开发框架,允许使用 JavaScript 和 React 语法构建原生应用。其核心原理…

react如何做弹窗

react如何做弹窗

使用 React 创建弹窗的方法 使用 React 内置状态管理 通过 React 的 useState 钩子控制弹窗的显示与隐藏,结合条件渲染实现弹窗效果。 import { useState…

react里面如何获取

react里面如何获取

获取 DOM 元素的方法 在 React 中获取 DOM 元素通常使用 ref。以下是几种常见方式: 使用 useRef Hook(函数组件) import React, { useRef, us…

react如何做title

react如何做title

如何在React中动态设置页面标题 使用React Helmet库可以轻松管理文档头部标签 安装依赖包npm install react-helmet或yarn add react-helmet 在组…

react icon 如何做

react icon 如何做

在 React 中使用图标的方法 安装图标库 React 项目可以通过流行的图标库(如 react-icons)快速集成图标。运行以下命令安装: npm install react-icons…