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

React Native proxy配置是否与原生React不同?本地API请求无响应如何解决

问题原因说明

package.json 根目录下的 proxy 配置是 Create React App(CRA)针对 Web 应用提供的专属能力,React Native 本身不支持该配置,因此你的写法无法生效。
你当前用相对路径 /colours 发起请求时,会默认拼接当前应用运行的域名端口,也就是 React Native 开发服务端口 http://localhost:19006,该路径不存在后端接口,开发服务就返回了默认的应用入口HTML,所以你会拿到带刷新按钮的响应内容,请求根本没有发到5000端口的API服务上。


解决方案

  • 直接使用完整接口地址发起请求。不要用相对路径,把请求地址替换为 http://<你的开发机局域网IP>:5000/colours,注意不要写 localhost,如果用真机调试,手机端的 localhost 指向设备本身,无法访问到开发电脑上的API服务,需要换成开发电脑在同一局域网下的IP地址(比如192.168.3.12这类格式)。示例写法:
fetch("http://192.168.3.12:5000/colours", {
  method: "GET",
  headers: {
    "Content-Type": "application/json;charset=utf-8",
  }
})
  • 配置全局接口前缀避免重复写地址。你可以单独封装一个配置文件,根据运行环境设置不同的基础地址,比如:
// config/api.js
const API_BASE_URL = __DEV__ ? 'http://192.168.3.12:5000' : 'https://你的线上接口域名'
export default API_BASE_URL

发起请求时拼接前缀即可:fetch(${API_BASE_URL}/colours, ...),后续切换环境只需要修改一处配置即可。

  • 如果你是通过 Expo Web 等方式在浏览器端运行 React Native 应用,需要在对应打包工具的配置文件里添加代理规则,比如用Vite就配置 vite.config.js 里的 server.proxy,用Webpack就配置 devServer.proxy,package.json 根目录的 proxy 仅CRA的Web构建流程识别,其他打包工具不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:04