簡體   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