基于React框架的axios跨域问题解决方案:配置代理

1.服务端只有一个端口且与客户端域不同时

客户端(client) 端口是http://localhost:3000/,如果服务端(server)就一个端口时,例如:http://localhost:5000/,只需要在package.json文件中添加配置 "proxy":'http://localhost:5000'  就行了

2.服务端有多个端口时且与客户端域不同时

客户端(client) 端口是http://localhost:3000/,服务端1(server1)端口:http://localhost:5000/,服务端2(server2)端口:http://localhost:5001/ 。需要在src文件夹中创建setupProxy.js文件,同时在文件夹中配置如下:

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

module.export =function(app){
  app.use(
    proxy('/api1',{//遇见/api1前缀的请求,就会触发该代理配置
      target:"http://localhost:5000",//请求转发给谁
      changeOrign:true,//控制服务器收到的请求头中Host的值
      pathRewrite:{'^/api1':''}//重写请求路径
    }),
    proxy('/api2',{//遇见/api1前缀的请求,就会触发该代理配置
      target:"http://localhost:5001",//请求转发给谁
      changeOrign:true,//控制服务器收到的请求头中Host的值
      pathRewrite:{'^/api2':''}//重写请求路径
    }),

  )
}

 

 Client 使用axios向http://localhost:5000/ 发送请求时需要在axios.get函数中传入url参数http://localhost:3000(客户端地址)后面拼接配置项中所对应的参数在这里是/api1 ,同理,如果向服务器端口httpp://localhost:5001发送请求时需要在axios.get函数中传入url参数http://localhost:3000(客户端地址)后面拼接配置项中所对应的参数在这里是/api2。如下图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

irrguask

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值