在没有固定 IP 的本地连接中从浏览器进行 API 调用
Making API calls from browser in a local connection without fixed IP
我是 运行 设备中的 Nginx Web 服务器,该设备具有两个不同的网络接口。我想在端口 80 上提供一个 React 应用程序,它对同一设备的不同端口上的 API 服务器进行 API 调用。我已将 Nginx 配置为侦听端口 80,它可以在两个界面上正确地为 React 应用程序提供服务。但是,进行 API 调用比较棘手。
如果我只有一个固定IP的接口,我会在React APP中将该IP设置为API服务器地址,一切都很好。然而,当有多个接口时,React App 并不知道哪个接口被用来服务它。结果it不知道哪个是API服务器的IP
此题也适用于只有一个接口但IP动态变化的设备。 Nginx 为网页提供服务而不管 IP,但 React App 需要知道 IP 地址才能进行 API 调用。
我知道一个常见的解决方案是为 API 服务器分配一个域,但在我的场景中,与设备的连接仅发生在本地网络上。
我考虑过的解决方案:
- 在两个接口上都有一个固定的 IP,并让 nginx 为每个接口提供不同的 React App。除了 API 服务器地址参数外,应用程序将是相同的。这可能有点矫枉过正。
- 要求用户在浏览器运行时在React App上输入IP。这不是真正的用户友好。
我真正想要的是一种让 React App 知道 IP 已被提供的方法,或者是一种让 Nginx 提供具有取决于设备 IP 的配置的 Web 的方法。有这样的解决方案吗?
由于 React 应用程序在本地网络中提供且不使用域,因此在浏览器中使用设备 IP 作为 href 进行请求。因此,应用程序可以使用 javascript 方法 window.location.href
获取设备的 IP 地址,并将其用作 API 服务器地址。
我是 运行 设备中的 Nginx Web 服务器,该设备具有两个不同的网络接口。我想在端口 80 上提供一个 React 应用程序,它对同一设备的不同端口上的 API 服务器进行 API 调用。我已将 Nginx 配置为侦听端口 80,它可以在两个界面上正确地为 React 应用程序提供服务。但是,进行 API 调用比较棘手。
如果我只有一个固定IP的接口,我会在React APP中将该IP设置为API服务器地址,一切都很好。然而,当有多个接口时,React App 并不知道哪个接口被用来服务它。结果it不知道哪个是API服务器的IP
此题也适用于只有一个接口但IP动态变化的设备。 Nginx 为网页提供服务而不管 IP,但 React App 需要知道 IP 地址才能进行 API 调用。
我知道一个常见的解决方案是为 API 服务器分配一个域,但在我的场景中,与设备的连接仅发生在本地网络上。
我考虑过的解决方案:
- 在两个接口上都有一个固定的 IP,并让 nginx 为每个接口提供不同的 React App。除了 API 服务器地址参数外,应用程序将是相同的。这可能有点矫枉过正。
- 要求用户在浏览器运行时在React App上输入IP。这不是真正的用户友好。
我真正想要的是一种让 React App 知道 IP 已被提供的方法,或者是一种让 Nginx 提供具有取决于设备 IP 的配置的 Web 的方法。有这样的解决方案吗?
由于 React 应用程序在本地网络中提供且不使用域,因此在浏览器中使用设备 IP 作为 href 进行请求。因此,应用程序可以使用 javascript 方法 window.location.href
获取设备的 IP 地址,并将其用作 API 服务器地址。