[英]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.