html 创建了一个带有博客功能的React应用程序,博客文章不会显示,有人知道为什么吗?

mpgws1up  于 2023-04-04  发布在  React
关注(0)|答案(1)|浏览(104)

作为我正在做的一个项目的一部分,我正在为我们的react应用程序制作一个博客页面。然而,我在显示博客文章时遇到了麻烦。
我在我的express后端上设置了一个调用,用于从我的MYSQL数据库中检索我的所有帖子,如下所示:

// Route to get all posts
app.get("/api/get", (req, res) => {
    con.query("SELECT * FROM posts", (err, result) => {
        if (err) {
            console.log(err)
        }
        res.send(result)
    });
});

在前端,我使用以下代码从API调用中获取数据:

const [postList, setPostList] = useState([]);

useEffect(() => {
  Axios.get("http://localhost:3002/api/get").then((data) => {
    console.log(data)
    setPostList(data.data)
  });
}, [])

要显示文章,我在这里使用以下代码:

<div className="PostContainer">
  {postList.map((val, key) => {
    return (
      <div className="Post" >
        <h1 className="post-title" onClick={() => (navigate(`/post/${val.id}`))}>{val.title}</h1>
        <p>{val.post_text.length > 300 ? val.post_text.substring(0, 300) + " ..." : val.post_text}</p>
        <h4>{val.user_name}</h4>
        <button className="like_btn" onClick={(() => LikePost(val.id))}>Like</button>

        <h5>Likes: {val.likes}</h5>
      </div>
    )
  })}
</div>

这一切对我来说似乎都很好,但显然有些地方出了问题,因为没有一个帖子显示。

rqcrx0a6

rqcrx0a61#

经过仔细检查,我发现浏览器上的控制台抛出了以下错误:
跨来源请求被阻止:同源策略不允许阅读localhost:3001/API/get上的远程资源。(原因:CORS标题“访问控制-允许-来源”缺失)。状态代码:200.
在做了更多的研究之后,我发现我必须包含一些代码,以便我的后端将信息发送到前端。这是我实现的代码:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://localhost:3000"); 
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();});

这已经解决了我的问题,博客文章现在显示正确的信息。

相关问题