React Native/Expo Go应用无法请求Node/Express API求助
问题:Expo Go无法访问本地Node/Express HTTPS API
我之前在Web端React项目中使用现有API,现在需要开发移动端应用,基于React Native和Expo Go启动开发,调研得知无需修改Node/Express应用即可在移动端使用,但目前遇到了API访问失败的问题。
后端Node/Express服务器代码(index.js)
const express = require("express"); const https = require("https"); const cors = require("cors"); const { Server } = require("socket.io"); const connectDB = require("./utils/database"); const orderRoutes = require("./routes/orderRoutes"); const inventoryRoutes = require("./routes/inventoryRoutes"); const app = express(); app.use(express.json()); app.use(cors()); connectDB(); app.use("/orders", orderRoutes); app.use("/inventory", inventoryRoutes); const server = https.createServer(app); const io = new Server(server, { cors: { origin: "*", methods: ["GET", "POST"], }, }); io.on("connection", (socket) => { console.log("New client connected"); socket.on("disconnect", () => { console.log("Client disconnected"); }); }); app.get("/", (req, res) => { res.send("Your server is working!"); }); const PORT = process.env.PORT || 5000; server.listen(PORT, () => { console.log(`Server running`); });
React Native中的API请求代码
useEffect(() => { fetch("https://192.168.1.85:5000/inventory") .then((response) => response.json()) .then((json) => console.log(json)) .catch((error) => console.error("Error fetching data:", error)); }, []);
已尝试的无效方案
- 在app.json中添加后端代理配置
- 安装expo-build-properties并设置
"usesCleartextTraffic": true - 使用localhost替代IPv4地址
- 尝试在物理设备和模拟器上通过Expo Go访问
关键注意事项
- 手机和电脑浏览器访问
192.168.1.85:5000/inventory均正常,因此问题出在Expo Go端 - 访问已部署的后端(如
https://jsonplaceholder.typicode.com/todos/1)可正常工作,排除网络连接问题 - 检查网络标签时未发现任何请求,说明应用根本未与服务器通信,再次证明服务器无问题
- 已查阅相关资料并尝试常见修复方案,仅未尝试修改AndroidManifest.xml文件(因为该文件不存在)
报错截图

内容的提问来源于stack exchange,提问作者Chrissisbeast
相关产品推荐
相关产品推荐

