繁体   English   中英

如何处理来自 Express api 的 JSON 响应 - 不透明响应

[英]How to handle JSON response from Express api - opaque response

我正在学习如何构建 MERN 应用程序。

我的数据库和 Express 服务器在 Postman 上运行良好。我还有一个可以写入数据库的工作 HTML 表单。

我现在想使用 javascript Fetch 显示来自数据库的数据。 问题是我不知道自己做错了什么——我一直收到不透明的回复。

前端:

<script>
fetch('http://localhost:4000/items/',  { method: 'GET',
    mode: "no-cors",
    headers: {"Content-Type": "application/json"}
  })
      .then(response => response)

    .then(data => {
    console.log(data);

  });
  </script>

响应是不透明的。

服务器代码片段:

    server.get("/items", (request, response) => {
// return updated list
dbCollection.find().toArray((error, result) => {
    if (error) throw error;
    response.json(result);
    console.log(result);
});

});

如果我 go 到 http://localhost:4000/items/ 我可以看到呈现的数据(作为 JSON)

如何使用 Fetch api 在 javascript 中正确访问它?

你有一个不透明的回应,因为你说mode: 'no-cors'

不透明意味着您看不到响应。

当您需要发送数据但不读取响应时,该模式就在那里。

您需要获得 CORS 的许可才能查看跨源响应,而no-cors是一种告诉fetch您不需要它的方式(因此当它没有得到它时不应该抛出错误)。

———

then(response => response)完全没有意义。 它什么都不 您需要使用response.json()来解码正文,但如果您一开始就看不到正文,那是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM