React create-react-app 里配置代理(解决跨域)

配置代理:

creact-react-app v5

当然不是v5 下面的方法也适用。

方式一:package.json里配置

其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。

修改时需要 npm start重新运行一下,要不然可能不生效。

proxy只能以 http:// 或https://开头 否则会报:
When "proxy" is specified in package.json it must start with either http:// or https://:

示例:

比如后端给的完整地址如下:

http://10.16.xx.xxx:8080/fund_diag/fund_home/select_by_fund

这一段是相同的地址(也就是所有接口都是这个前缀),根据你的接口来定。

javascript 复制代码
"proxy": "http://10.16.xx.xx:8080/fund_diag"

然后使用即可 比如 axios url直接请求就行代码如下:

request就是axios 只是我又封装了一层。

javascript 复制代码
   // axios.get(url, { params })
    request.get("/fund_home/select_by_fund?fund=1001").then(res=>{
      console.log(res);
    })

然后启动项目就可以看到请求成功了(不配置proxy是成功不了的,因为跨域了)。

network截图:

方式二:http-proxy-middleware 配置代理

1.安装 http-proxy-middleware

powershell 复制代码
npm install --save http-proxy-middleware

2.在src下新建 setupProxy.js 文件名必须是这个 然后配置一下即可。

javascript 复制代码
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
    app.use(
      '/api',
      createProxyMiddleware({
        target: 'http://10.16.xx.xxx:8080/fund_diag', //代理的地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''  // 将请求路径中的 "/api" 替换为 ""
        }
      })
    )
  };

axios使用/api/xx 即可走代理:

javascript 复制代码
    // axios.get(url, { params })
    request.get("/api/fund_home/select_by_fund?fund=1001").then(res=>{
      console.log(res);
    })

示例:

比如后端给的完整地址如下:

http://10.16.xx.xxx:8080/fund_diag/fund_home/select_by_fund

http://10.16.xx.xxx:8080/fund_diag这段是接口的前缀,也就是每个接口都有这段。所以 我target 配置为 :http://10.16.xx.xxx:8080/fund_diag

当然 具体需需要怎么配置,根据你的接口来定

network截图:

相关推荐
Penge6661 分钟前
React 事件处理:bind(this) 原理与实际开发常用写法
前端
ZhengEnCi12 分钟前
小白用 AI 做官网完全指南:不用框架的六格清单,双击就能打开
前端·html·ai编程
zhanlang021727 分钟前
HTML 零基础入门到企业实战【第五章 5.2】图片路径精讲:绝对路径、相对路径、网络路径(新手必踩坑点)
前端·html
夕水1 小时前
我用trae重构了ew-color-picker,一个插件化架构的现代颜色选择器
前端·javascript·开源
Penge6661 小时前
React JSX 核心语法:从入门到业务开发实战
前端
zhanlang02171 小时前
HTML 零基础入门到企业实战全套教程【第五章 5.5 综合案例:图文影音展示页面开发】
前端·html
zhanlang02171 小时前
HTML 零基础入门到企业实战全套教程【连载 5.3】audio、video 音频视频标签|兼容格式、自动播放踩坑、企业规范
前端·html
qq_406981032 小时前
c++ lamda(三)Lambda表达式
java·前端·c++
zhanlang02172 小时前
HTML 零基础入门到企业实战【第五章 5.4】内嵌网页 iframe 标签:嵌入网页、视频、地图实战
前端·html·音视频
2分钟速写快排10 小时前
孔乙己的茴字有多少种写法?|AI 对话实时通信的三种实现
前端·javascript·github