数据未使用axios呈现,/使用mongoDB

时间:2019-12-23 11:22:58

标签: javascript reactjs express mongoose axios

我对端点的请求:http://localhost:3200/api/posts/使用POSTMAN返回对象数组,这些对象具有标题,描述和图像的值。

enter image description here

在前端,我制作了一个组件,尝试使用axios和来自react的useEffect提取这些值,然后进行渲染。

const Posts = () => {

  let [posts, setPosts] = useState([])
  console.log(posts)

      useEffect(() => {
        axios.get("http://localhost:3200/api/posts/")
            .then(({ data })=> {
       console.log('data====',data);
              setPosts(
         data
       );
     })
            .catch(err => {
              console.log(err);
            })
    }, []);

  return (
    <ul>
            {posts.map((item, index) => <li key={index}>{item.title}</li>)}
    </ul>
  );




}

我正在获取数据的表单下方呈现“帖子”的组件,显示了“标题”,但组件未加载任何数据。 ![enter image description here

return (
    <>
    <form onSubmit={submitFormHandle}>
          <div className="form-group">
             <ToastContainer />
      </div>

     <label htmlFor="formGroupExampleInput">Title</label>
     <input type="text" className="form-control" id="formGroupExampleInput" placeholder="Example input" onChange={onChangeTitle}/>


    <div className="form-group">
      <label htmlFor="comment">description</label>
      <textarea className="form-control" rows="5" id="comment" onChange={onChangeDescription}></textarea>
          </div>

          <div className="form-group files">

        <label htmlFor="exampleFormControlFile1">Upload Cat Memes</label>
        <input
          type="file"
          className="form-control"
          id="exampleFormControlFile1"
          multiple
          onChange={onChangeFile}
        />
          </div>

        <button type="submit" className="btn btn-primary">
            Submit
        </button>

    </form>

      <h3>View your posts</h3>
      <Posts />
  </>
  );
};

我收到此错误:

  

错误:XMLHttpRequest.handleError(xhr.js:80)处createError(createError.js:17)出现网络错误

1 个答案:

答案 0 :(得分:2)

允许在您的后端使用cors并设置标题,如下所示。

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