news 2026/9/16 10:58:26

配置多个后端 API 代理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
配置多个后端 API 代理

在开发 React 应用时,通常会涉及到与后端 API 的交互。而在开发过程中,我们经常需要在开发环境中使用代理来解决跨域请求的问题。Create React App 提供了一种简单的方式来配置代理,即通过创建一个名为setupProxy.js的文件来配置代理规则。

假设我们的应用需要访问两个不同的后端 API,分别是/api1/api2。我们可以在setupProxy.js文件中配置多个代理规则,使得不同的 API 请求会被代理到不同的后端服务上。

以下是一个示例setupProxy.js文件的配置:

// setupProxy.jsconst{createProxyMiddleware}=require('http-proxy-middleware');module.exports=function(app){app.use('/api1',createProxyMiddleware({target:'https://dev.usemock.com',changeOrigin:true,pathRewrite:{'^/api1':''}}));app.use('/api2',createProxyMiddleware({target:'https://dev.usemock.com',changeOrigin:true,pathRewrite:{'^/api2':''}}));};

在这个配置中,我们使用了http-proxy-middleware库来创建代理中间件。对于/api1/api2开头的请求,它们会被代理到https://dev.usemock.com,并且通过pathRewrite将路径重写为空字符串,以保证请求正确到达后端服务。

接下来,我们可以在 React 组件中使用这些代理进行 API 请求。以下是一个示例组件的代码:

// Proxy2.jsimportReact,{Component}from'react';importaxiosfrom'axios';exportdefaultclassProxy2extendsComponent{handleFetch1=()=>{axios.get('/api1/65d55e87c87ce4342e1285ab/todos').then(response=>console.log('请求成功',response.data)).catch(error=>console.error(error));};handleFetch2=()=>{axios.get('/api2/65d55e87c87ce4342e1285ab/todos').then(response=>console.log('请求成功',response.data)).catch(error=>console.error(error));};render(){return(<div><button onClick={this.handleFetch1}>点击我通过代理/api1发送请求</button><hr/><button onClick={this.handleFetch2}>点击我通过代理/api2发送请求</button></div>);}}

在这个示例中,我们通过点击按钮触发两个不同的 API 请求,分别使用了/api1/api2前缀来访问代理配置中的两个后端 API。

通过以上配置,我们可以在开发 React 应用时轻松地使用setupProxy.js文件配置多个后端 API 的代理规则,确保与后端服务的顺畅通信。

这篇博客介绍了如何使用setupProxy.js文件配置多个后端 API 的代理规则,并在 React 组件中使用这些代理进行 API 请求。通过这种方式,我们可以在开发环境中轻松地解决跨域请求的问题,保证前后端的正常通信。

参考

  • 配置多个后端 API 代理
  • 完整代码
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 10:58:22

静态时序分析:工艺库的特征化环境和工作环境

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 一个工艺库(technology library) 会指定该库的特征化环境(characterization condition)和工作环境(operating condition)。一般在工艺库的开头会看见以下信息。 …

作者头像 李华
网站建设 2026/9/16 10:58:04

通信原理期末复习:高频考点与典型试题详解

通信原理期末考试&#xff0c;大概是我带过的课程里学生最容易出现“听课全会、做题全废”的一门。原因很简单&#xff1a;通信原理里每一个结论背后都有一堆前提条件和数学推导&#xff0c;而考试偏偏喜欢把概念、公式、系统设计揉在一道题里考。很多同学直到考前一周才开始翻…

作者头像 李华
网站建设 2026/9/16 10:57:41

Flutter+OpenHarmony实现动态圆环关卡生成技术解析

1. 为什么需要动态关卡生成&#xff1f;在移动游戏开发中&#xff0c;关卡设计往往是决定游戏可玩性和重复体验的关键因素。传统静态关卡需要设计师手动绘制每个关卡的布局&#xff0c;这种方式在小型休闲游戏中会面临两个核心问题&#xff1a;第一是开发效率低下。以我们常见的…

作者头像 李华
网站建设 2026/9/16 10:55:56

腾讯Agent Suite:企业级办公智能体工程化落地框架

1. 这不是又一个“AI办公助手”——腾讯 Agent Suite 是一套可拆解、可组装、可验证的办公智能体工程体系你刷到过太多标题党&#xff1a;“腾讯发布全新AI办公助手&#xff01;”“WorkBuddy秒杀钉钉Copilot&#xff01;”——但如果你真去下载安装、配置调试、跑通一个完整流…

作者头像 李华
网站建设 2026/9/16 10:52:41

Uniapp英语学习系统开发:选课打卡一体化实践

1. 项目概述与设计思路作为一名长期从事教育类应用开发的工程师&#xff0c;我发现学生英语学习过程中普遍存在两个痛点&#xff1a;一是选课流程繁琐&#xff0c;二是学习过程缺乏持续性监督。针对这些问题&#xff0c;我设计了一套基于Uniapp的英语选课与学习打卡系统&#x…

作者头像 李华