Vue 和 React 跨域设置多个代理

前言:

        因为公司数据不能暴露,本文中的数据都是临时创建出来的,可能有问题,不要全看。

        欢迎大家点赞评论,如果内容有说的错误的或者有其他解决方法,恳请大家多多指点。

Vue 设置多个代理

        在脚手架中,创建 vue.config.js 文件,并配置:

module.exports = {
	devServer: {
	    port: 9000,  //配置浏览器打开的端口号
	    proxy: {
	      '/api': { //判断请求路径前缀是什么
	      target: 'http://localhost:3000', //请求的服务器地址
	      ws: true,     //proxy websockets
	      changeOrigin: true, //是否允许跨域
	      pathRewrite: {  //修改这个请求路径的地方
	        '^/api': ''  
	      }
	    }

            //第二个端口
        '/xxxxx': { //判断请求路径前缀是什么
	      target: 'yyyyyyyyy', //请求的服务器地址
	      ws: true,     //proxy websockets
	      changeOrigin: true, //是否允许跨域
	      pathRewrite: {  //修改这个请求路径的地方
	        '^/xxxxx': ''  
	      }
	    }
               //.....
	},
     disableHostCheck: true,  // 这是由于新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname 不是配置内的,将中断访问,请求是已经到达服务器的
  },
}

详情可以在 DevServer | webpack 中查找

React 设置多个代理

单纯配置请求的代理

        注意,下面是区分18前和18后的不同代理

        在脚手架中的 src 文件夹中,创建 setupProxy.js 文件,并配置:

//注意引入的这个中间件不要写花括号
const createProxyMiddleware = require("http-proxy-middleware");


// 配置多个代理 这个是18之前的配置
module.exports = function (app) { //app实际上是express的服务器对象。

  // app.use使用中间件
  app.use(
    "/api",
    createProxyMiddleware({
      target: "http://localhost:3000", //服务器地址
      changeOrigin: true,  //是否允许跨域
      pathRewrite: {   //修改请求路径的地方
        '^/api': '' 
      },
    })
  );


       //第二个
  app.use(
    "/xxx",
    createProxyMiddleware({
      target: "http://yyyyyyy",
      changeOrigin: true,
    })
  ); 
    //.......
};

// 配置多个代理 这个是18时的配置
module.exports = function (app) { //app实际上是express的服务器对象。

  // app.use使用中间件
  app.use(
    createProxyMiddleware("/api", {
      target: "http://localhost:3000", //服务器地址
      changeOrigin: true,  //是否允许跨域
      pathRewrite: {   //修改请求路径的地方
        '^/api': '' 
      },
    }),

     // 第二个
     createProxyMiddleware("/xxx", {
       target: "http://yyyyyyy",
       changeOrigin: true,
     }),

     //.......
  );
     
};

详情可以在 npm 中搜索 http-proxy-middleware 中间件

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用方法二中的创建代理配置文件来配置多个代理。在创建代理配置文件时,可以指定多个代理规则,每个规则对应一个代理目标。例如,可以创建一个名为proxy.config.js的文件,内容如下: ```javascript module.exports = { '/api1': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { '^/api1': '' } }, '/api2': { target: 'http://localhost:4000', changeOrigin: true, pathRewrite: { '^/api2': '' } } } ``` 然后在vue.config.js中引入该配置文件,并将其作为devServer的proxy属性的值: ```javascript const proxyConfig = require('./proxy.config.js'); module.exports = { devServer: { proxy: proxyConfig } } ``` 这样就可以配置多个代理了。例如,当发送请求到`/api1`时,会被代理到`http://localhost:3000`;当发送请求到`/api2`时,会被代理到`http://localhost:4000`。 #### 引用[.reference_title] - *1* [vue配置proxy跨域代理](https://blog.csdn.net/weixin_68658847/article/details/128601635)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [React中使用proxy配置代理解决跨域问题](https://blog.csdn.net/yrqlyq/article/details/119649415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值