Javascript componentDidMount的ReactJS API调用返回index.html作为响应
我有一个非常简单的ReactJS应用程序。我想在页面加载时从API中获取一些数据。在我的Javascript componentDidMount的ReactJS API调用返回index.html作为响应,javascript,reactjs,mongodb,api,mern,Javascript,Reactjs,Mongodb,Api,Mern,我有一个非常简单的ReactJS应用程序。我想在页面加载时从API中获取一些数据。在我的componentDidMount()函数中,我调用我的getData()方法来初始化应用程序中的状态。当我这样做时,控制台会告诉我: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 我不知道为什么会发生这种情况,因为当我从PostMan调用我的API时,一切都很好。DB的预期响应(与邮递员的呼叫一
componentDidMount()
函数中,我调用我的getData()
方法来初始化应用程序中的状态。当我这样做时,控制台会告诉我:
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
我不知道为什么会发生这种情况,因为当我从PostMan调用我的API时,一切都很好。DB的预期响应(与邮递员的呼叫一起工作):
我收到的答复是:
求职申请
您需要启用JavaScript才能运行此应用程序。
就这样做吧
const url = "/api/applications";
fetch(url)
.then(response => response.json())
.then(data => this.setState({ applications: data }));
希望这会有帮助。就这样做吧
const url = "/api/applications";
fetch(url)
.then(response => response.json())
.then(data => this.setState({ applications: data }));
希望这会有所帮助。aaa和大量的脑放屁 当然,我的申请没有返回任何内容。我让我的API作为一个单独的实例在我的机器上的一个完全不同的端口上运行。因此,当我想点击我的API时,我必须指定完整的URL,而不仅仅是
/API/无论什么
——在我的情况下,完整的URL应该是http://localhost:8080/api/applications
注意-最佳做法是将URL的基本部分存储在.env
文件中,并为其命名,如URL\u base=http://localhost:8080
并将其前置到我的变量
let url=process.env.url_BASE+'/api/applications';
这样,如果不设置
URL\u BASE
,只需将emty字符串前置到URL即可。此结构用于Heroku和MASSIVE BRAINFART等托管服务
当然,我的申请没有返回任何内容。我让我的API作为一个单独的实例在我的机器上的一个完全不同的端口上运行。因此,当我想点击我的API时,我必须指定完整的URL,而不仅仅是/API/无论什么
——在我的情况下,完整的URL应该是http://localhost:8080/api/applications
注意-最佳做法是将URL的基本部分存储在.env
文件中,并为其命名,如URL\u base=http://localhost:8080
并将其前置到我的变量
let url=process.env.url_BASE+'/api/applications';
这样,如果不设置
URL\u BASE
,只需将emty字符串前置到URL即可。这种结构与HeloCu @难以置信的BulpPoor一起使用,如果这对你的KOY来说比“请做投票”:“我本来会工作的,所以我还是会投票赞成的:但是,在这种情况下,它基本上只是我自己的脑筋在快乐中有帮助。L:)请考虑这个标记,这样可以关闭这一阙。非常感谢。我不能把你的回答看作是这个问题的解决办法,因为它不能解决这个问题。但是你提供的代码是一种更为巧妙、更好的方法,它会工作得非常完美:)我已经发布了我自己对真实情况的答案,并将在可能的时候标记为正确tomorrow@IncrediblePony如果这不符合你的要求,请投票:)我会工作,所以我会投票:)但在这情况基本上就是我自己的脑筋在快乐中有帮助。L:请考虑这个标记,这样可以关闭这阙。非常感谢。我不能把你的回答看作是这个问题的解决办法,因为它不能解决这个问题。但您提供的代码是一种更灵活、更好的方法,它会工作得很好:)我已经发布了我自己对实际发生的事情的答案,并将在明天我可以的时候标记为正确。每次您可以将其存储在env文件中,并在项目中像全局一样使用它。这是真的-我将添加这是对答案的注释,而不是每次您可以将其存储在env文件中并在项目中像全局一样使用它时都编写localhost