react-app中通过proxy解决跨域问题

本文介绍如何在React项目中使用http-proxy-middleware配置代理,实现将不同API请求转发到指定服务器。通过安装依赖及在src/setupProxy.js中设置代理规则,可以灵活地为多个URL路径配置不同的目标服务器。

proxy代理原理 是把本地 http://localhost:3000 端口的/api请求转发到了 代理服务器  比如 http://172.20.1.148:8082 

 

 

proxy代理 匹配   '/api'  的url

create-react-app 的版本高于 2.0 版本的时候在 package.json 只能配置 string 类型, 配置成如下: 

"proxy": "http://172.20.1.148:8082"

但是它只能匹配    '/api'  的url,而且只能匹配一个代理

如果你想代理多个,看下面

 

 

proxy代理 匹配   多个  的url

第一步:

安装 http-proxy-middleware 依赖

npm install --save-dev http-proxy-middleware

 

 

第二步:

在项目中 src 文件夹下新建文件 setupProxy.js ,写入如下代码

创建好这个文件之后,会自动的引用它,不需要额外的配置。不过代理想要生效,必须重新运行项目。

const proxy = require('http-proxy-middleware')

module.exports = function(app) {
  app.use(
    proxy('/back', {
      target: 'http://172.20.1.148:8082',
      changeOrigin: true
    })
  )
  app.use(
    proxy('/common', {
      target: 'http://172.20.1.148:8082',
      changeOrigin: true
    })
  )
}

提示!!!

提示:如果使用了axios请求拦截器的 配置 url,请注释掉     // conf.url = `${config.domain}${conf.url}`

 或者把  ${config.domain}  设为空    const testDomin = '' 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值