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