【问题标题】:Not receiving GET response from Express server没有收到来自 Express 服务器的 GET 响应
【发布时间】:2019-03-23 13:44:56
【问题描述】:

当我从客户端向我的 Express 服务器发送 GET 请求时,它会将数据发送到客户端,但我的 XMLHttpRequest 就绪状态为 1,状态为 0,它从不记录响应文本。

客户:

req.onreadystatechange = function() {
  console.log(this.readyState);
    if (this.readyState == 4 && this.status == 200) {
      console.log(this.responseText);
  }
};
req.open('GET', url + 'users', true);
req.send();

服务器:

app.get('/users', function(req, res) {
  res.send(users);
});

如果有人能告诉我为什么我无法在客户端接收用户数组以及如何解决它。那太好了。

【问题讨论】:

  • 确保在 req.open 中使用相对路径。无论如何它应该是 url+"/users"

标签: javascript node.js ajax express get


【解决方案1】:

首先我会使用fetch javascript,因为它看起来更自然。

/* on server */
app.get('/users', function(req, res) {
  res.send(users);
});


/* on client */
fetch('/users').then(async (response) => {
  if (response.status === 200) {
    console.log(await response.text());
    // do you receive something ?
  }
  else {
    throw new Error('something unexpected occurred');
  }
}.catch(err => { console.err(err) })

如果您没有收到任何内容,那么您应该检查您的首页是否来自同一数据提供服务器,因为当您调用 /users 时,浏览器会将主机添加到路径之前。因此,如果您的客户端页面和后端服务器没有在同一主机上运行,​​它将失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多