【问题标题】:Not able to connect by frontend to backend on heroku after successful deployment成功部署后无法通过前端连接到 Heroku 上的后端
【发布时间】:2020-09-26 15:35:12
【问题描述】:

我已经在heroku 上部署了我的mern stack 应用程序。问题是我无法向我的后端提出任何请求。 我正在像这样将我的前端连接到我的后端......

API=http://localhost:5000/api

 import { API } from "../../backend";
import { signin } from "../../auth/helper";
export const getAllProducts = () => {
  return fetch(`**${API}/allProducts**`, { method: "GET" })
    .then((response) => {
      return response.json();
    })
    .catch((err) => {
      console.log(err);
    });
};

我想我正在本地主机上调用 api,这导致我没有连接到后端。 我应该在这里做什么?

如果你还想要什么,可以告诉我。

【问题讨论】:

  • 你得到什么回应?错误是什么?是 404 吗?
  • 我没有得到响应。因为在本地它可以工作,但在 heroku 上它不能访问 API
  • 说是获取失败

标签: reactjs heroku mern


【解决方案1】:

在客户端(前端)代码中,localhost 是最终用户的机器,因为代码在该机器的浏览器中运行。因此,当它尝试从 localhost:5000/api 获取时,它会在最终用户的机器上寻找 Node.js 服务器,而不是在 Heroku 上的实际生产服务器。

使用分配给您的应用的域 Heroku,而不是 localhost。您可以在测功机的设置中找到它,并且应该类似于 https://yourapp.herokuapp.com/。此外,您可以使用NODE_ENV env var 设置 API 字符串,使其在开发和生产中都可以使用:

const API = process.env.NODE_ENV === 'production' ? 'https://yourapp.herokuapp.com/api' : 'http://localhost:5000/api';

【讨论】:

  • 是的,你没看错。我犯了那个愚蠢的错误。谢谢你让我正确
  • 没问题。我们都会犯愚蠢的错误;)。你设法解决了吗?不要忘记将答案标记为已接受
猜你喜欢
  • 2020-02-29
  • 1970-01-01
  • 2021-02-10
  • 2021-05-13
  • 1970-01-01
  • 2020-12-25
  • 2020-05-20
  • 2021-02-23
相关资源
最近更新 更多