【发布时间】:2020-03-06 12:31:31
【问题描述】:
我正在使用 React 构建一个 Web 应用程序,并且我正在 componentDidMount 中执行获取请求,例如:
fetch('http://localhost:8080')
.then(currencies => currencies.json())
.then(currencies => this.setState({
currencies, loading: false
}))
.catch(err => console.log(err));
这适用于我的机器。我想将应用程序部署到 Kubernetes,因此我将 localhost 更改为服务名称,例如http://history:8080。
当我部署它时,似乎在前端 GET 时,前端加载到我的浏览器中,然后尝试从我的个人笔记本电脑获取 history:8080。
这是真的,还是我误解了我的错误?
如果这是真的,我如何在后端强制提取?我需要由容器执行请求,然后只需要为页面提供服务。
【问题讨论】:
-
您是否在笔记本电脑上运行 Kubernetes?
-
@MaazSyedAdeeb 不,它是云端的开发集群
-
componentDidMount仅在客户端而非服务器端触发 -
@JoeLloyd 啊。我的 fetch api 应该在服务器端在哪里触发?有标准的地方吗?
-
是的,我没有你的设置。它要复杂得多。我不知道 kubernetes 是什么,但如果那是你的后端,将会有一些服务器端获取的最佳实践。否则你必须在节点中制作一个路由器,这很痛苦。或者使用 Next js,它非常适合 next
标签: reactjs frontend web-frontend