You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一主机上React开发服务器与Flask服务器为何需代理才能通信?

问题解答

一、为何React开发服务器无法直接访问同一机器的Flask服务?

核心原因是浏览器的同源策略限制:

  • React开发服务器(比如Vite默认5173端口、Create React App默认3000端口)和Flask服务(5000端口)属于不同端口,浏览器会判定为两个不同的「源」(同源要求协议、域名、端口三者完全一致)。
  • 当你在React页面中直接发起请求到localhost:5000时,浏览器会触发跨域安全拦截,直接阻止请求发送——并非两台服务本身不能通信,而是浏览器的安全机制不允许前端页面跨源请求。

配置React开发服务器代理后能正常通信的原因:

  • 代理会让前端请求先发送到React开发服务器,再由服务器转发到Flask的5000端口。服务器之间的通信不受浏览器同源策略限制,因此可以正常获取数据。

二、Chrome访问Web应用出现连接拒绝的可能原因

  • React开发服务器未正常启动:检查终端是否有报错信息,确认服务是否成功运行。
  • 端口占用或访问端口错误:比如开发服务器实际运行在5173端口,但你仍访问3000端口;或者目标端口被其他程序占用,导致开发服务器无法启动。
  • 防火墙/安全软件拦截:本地防火墙或安全软件可能阻止Chrome访问开发服务器的端口,可尝试临时关闭后再测试。
  • localhost解析异常:检查本地hosts文件是否存在错误配置,导致localhost无法正确解析到127.0.0.1。

内容的提问来源于stack exchange,提问作者user1224478

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:15:04