react配置代理,解决跨域
方案1
//配置: package.json
"proxy":"https://xxxx.com"
问题: 只能代理一个服务器
方案二
利用客户端代理中间件(http-proxy-middleware)完成,
官网给了新的使用方式,在src下新建文件setupProxy.js加下面代码,
无需单独应用,webpack会自动引入文件。
npm install http-proxy-middleware -S
文件内容
//verion < 1.0版本 const proxy = require('http-proxy-middleware'); //需要安装中间件 module.exports = function(app) { app.use( proxy("/api", { target: 'https://xxx.com', changeOrigin: true }) ); app.use( proxy("/v2", { target: "https://xxx2.com", changeOrigin: true }) ); }; //组件: /api/xx ... | /v2/... //verion > 1.0 const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use('/api', createProxyMiddleware({ target: 'http://localhost:3000', changeOrigin: true, })); app.use('/api2', createProxyMiddleware({ target: 'http://xxx.com', changeOrigin: true, pathRewrite: { //路径替换 '^/api2': '/api', // axios 访问/api2 == target + /api } })); };
方案三
配置create-react-app环境下的webpack
无需安装中间件
修改eject后的config目录下的webpackDevServer.js配置文件
// config/webpackDevServer.js proxy: { '/api2': { target: 'http://xxx.com', // 后台服务地址以及端口号 ws: true, // websoket 服务 changeOrigin: true, //是否跨域 pathRewrite: { '^/api2': '/api' } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通