未从Express服务器收到GET响应

时间:2019-03-23 13:44:56

标签: javascript node.js ajax express get

当我从客户端向我的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);
});

如果有人可以告诉我为什么我不能在客户端收到大量用户以及如何解决它。那就太好了。

1 个答案:

答案 0 :(得分: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时,浏览器会将主机放在路径之前。因此,如果您的客户端页面和后台服务器都不在同一主机上运行,​​它将失败。