前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React中,设置代理跨域的方法总结

React中,设置代理跨域的方法总结

作者头像
用户9914333
发布2022-07-22 14:31:01
1.4K0
发布2022-07-22 14:31:01
举报
文章被收录于专栏:bug收集

今天主要和大家分享下,在 react 中"如何进行代理跨域"的方法

针对 create-react-app 脚手架

1、create-react-app脚手架低于2.0版本时

直接在 package.json 下配置

代码语言:javascript
复制
"proxy": "http://api.xxxx.com"

或者如果创建多个域,该如何设置 proxy

代码语言:javascript
复制
"proxy":{
   "/api":{
      "target":"http://localhost:8888",
      "changeOrigin": true,
        pathRewrite: {
                '^/api': '',
            }
    }
}

2、create-react-app脚手架高于2.0版本时

因create-react-app脚手架2.0版本以上只能配置string类型,

所以package.json 中只能配置一个跨域信息,如下:

代码语言:javascript
复制
"proxy": "http://m.kugo.com",

如果创建多个域,就不能写成对象了去实现了。那怎么办?

最好的方式可以通过 middleware 中间件进行配置(可以配置多个代理)

先安装下, install http-proxy-middleware

然后,src 目录下创建一个 setupProxy.js 文件

代码语言:javascript
复制
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function (app) {
    app.use(
        '/api',
        createProxyMiddleware({
            target: 'http://localhost:8888/',
            changeOrigin: true,
            pathRewrite: {
                '^/api': '',
            }
        })
    );
    app.use(
        '/img',
        createProxyMiddleware({
            target: 'http://localhost:9999/upload/',
            changeOrigin: true,
            pathRewrite: {
                '^/img': '',
            }
        })
    );
};

注意:

一定要写 pathRewrite ,不写没有效果

不需要做任何关联,只要文件叫 setupProxy.js 就好

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档