无法在托管设备以外的设备上从 Node.js 服务器获取数据

问题描述 投票:0回答:1

我遇到了一个问题,除了托管服务器的设备之外,我无法从其他设备建立到服务器的连接。服务器在本地运行,我正在使用 React 作为前端开发一个 Web 应用程序。

当我从托管设备(例如我的笔记本电脑)访问应用程序时,一切正常。但是,当尝试从同一网络上的其他设备访问同一应用程序时(我已经尝试过 iPhone 和 Android),我无法从服务器获取数据。我可以访问该页面,但没有加载任何数据,(来自 Mac(托管设备)来自其他设备相同网络

使用网络检查器检查网络活动后,我注意到所有失败的请求都具有“fetch”类型和“localhost”域。另一方面,成功的请求,具有“txt”,“js”,“文档”,“socket”等类型,域名是我的IP地址。

我检查了我的 CORS 配置,它似乎允许来自任何来源的请求。此外,我通过尝试通过网络浏览器直接访问服务器来确保服务器正在运行并且可以从客户端设备访问。

我尝试过的更多事情:

  1. 已验证我的 Mac 和 iPhone 已连接到同一 Wi-Fi 网络。
  2. 在我的 Mac 上禁用防火墙限制,允许所有传入连接。
  3. 确认服务器配置为允许来自所有来源的 CORS (Access-Control-Allow-Origin: *)。
  4. 测试了使用不同网络浏览器从手机访问服务器

我希望数据能够成功加载,就像从主机设备访问数据时一样。

javascript reactjs node.js networking cors
1个回答
0
投票

我不确定我的理解是否正确,但从我看来,您可以从其他设备连接到您的应用程序,但在网络调用中,它显示 localhost/api/data (获取 api)并且它不起作用/返回 404?如果是这种情况,并且在网络调用中您看到“Localhost”,那么是否有可能在您的环境中或任何您有字符串来获取数据的地方,您拥有 localhost 而不是 192.168.0.xxx (您的本地 IP)。如果是这种情况,那么您需要将其从本地主机切换到您的 IP。如果这不起作用,请随时向我提供更多信息(也许带有屏幕截图或特定的网络调用日志)。

© www.soinside.com 2019 - 2024. All rights reserved.