将MERN应用部署到Heroku时获取API的问题

时间:2020-03-28 21:58:16

标签: node.js reactjs heroku fetch mern

我正在尝试在Heroku上部署MERN应用,但是获取API出现问题。以下代码给出了控制台中的错误“未捕获(承诺)SyntaxError:JSON中位置0的意外令牌E”

getDataFromDb = () => {
   fetch('https://product-listing-listing.herokuapp.com/api/getData')
      .then((data) => data.json())
      .then((res) => this.setState({ data: res.data }));
};

跳过根,仅写fetch('/api/getData')也会出现相同的错误。

当我使用npm在本地运行应用程序时,从以下代码开始,我不会收到任何错误:

getDataFromDb = () => {
   fetch('http://localhost:3001/api/getData')
      .then((data) => data.json())
      .then((res) => this.setState({ data: res.data }));
};

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

Uncaught (in promise) SyntaxError: Unexpected token E in JSON at position 0表示fetch('https://product-listing-listing.herokuapp.com/api/getData')返回无效的JSON结果。

尝试

getDataFromDb = () => {
   fetch('https://product-listing-listing.herokuapp.com/api/getData')
      .then((data) => data.text())
      .then((res) => console.log(res));
};

检查fetch返回什么。