我正在使用CRA设置我的react应用程序。
我想问一下,如何让本地访问的react应用程序进行API调用。为了解释我的问题,我只能通过描述它来解释它。
所以目前,我的机器的IP地址是192.168.1.2。我的后端服务器在192.168.1.2:3000上运行(如果我在浏览器上点击192.168.1.2:3000/customers,我会得到json响应),我的前端在192.168.1.2:3001上运行
如果我从我的笔记本电脑浏览器打开http://localhost:3001或http://192.168.1.2:3001,所有组件都会呈现,它会呈现加载的组件,不久之后列表就会呈现。(如果我检查我的后端服务器,我可以看到我的服务器收到了GET请求)
然而,如果我从我的手机打开http://192.168.1.2:3001,所有组件都会呈现,但它停留在加载组件上。当我检查我的后端服务器时,它根本没有收到任何请求。因此,从我可以看到的是,通过从宿主机器外部本地访问我的react应用程序,该应用程序将不会进行任何API调用。
我该如何解决这个问题?我做过的事情:
在package.json中添加proxy:http://localhost:3000和proxy:192.168.1.2:3000(两者都不起作用)
将" start“脚本更改为:"HOST=0.0.0.0 react-scripts start”和"react-scripts start --host=0.0.0.0“(两者都不起作用)
发布于 2020-03-10 03:34:50
我最好的猜测是,您正在从localhost中获取类似于以下内容的数据:
fetch("http://localhost:3000/customers")
proxy在配置文件中不工作的原因是您需要从fetch中删除"http://localhost:3000“。否则,它仍会using该api的localhost,而不使用代理设置。所以它应该看起来像这样:
fetch("/customers")
当然,如果没有可重复的示例,很难判断这是否是您遇到的问题。
https://stackoverflow.com/questions/60607042
复制相似问题