无法从快速服务器获取数据

Cant get data from express server

我正在尝试发送 GET 请求并在我的客户端接收响应(反应)。

在我的快递服务器上:

app.get('/', function (req, res) {
   res.send('Hey, I came from the express server');
})

当我使用邮递员发送请求时,我收到了一个很好的答复:

所以我不认为问题出在服务器上。

一个问题:

当我尝试像这样使用 React 发送请求时:

  const getData = () => {
    fetch("http://localhost:8081", {
      method: "GET",
      mode: 'no-cors'
    }).then(response => console.log(response));
  }

由于某种原因,响应状态为 0 而不是 200(在与邮递员以及 chrome 网络选项卡上检查此请求时,我收到 200 的状态代码)。 此外,如果我尝试打印 response.body 它将为空。

回复:

body: (...)
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 0
statusText: ""
type: "opaque"
url: ""
[[Prototype]]: Response

我做错了什么?

您需要将您的回复转为短信或json,例如:

  const getData = () => {
    fetch("http://localhost:8081", {
      method: "GET",
      mode: 'no-cors'
    }).then(response => response.json()).then(data => console.log(data))
  }

除了.json()还有更多方法。它的一切都写在文档中。你只需要google它:

https://developer.mozilla.org/en-US/docs/Web/API/Response#methods

You can add a proxy property 到您的 package.json:

"proxy": "http://localhost:8081",

然后只需使用 / 作为您的获取端点。

fetch('/'...