使用AJAX请求从Node JS服务器获取数据

时间:2018-07-24 06:43:26

标签: node.js ajax post

我正在尝试使用POST请求从前端从后端节点服务器获取数据,但是HTML似乎无法正确捕获和显示数据。我已经使用Postmaster测试了后端,数据也很好。有人可以帮我从这里出去吗?由于项目的完整代码相当庞大,因此我现在将添加相关代码段。

后端为

#!/usr/bin/env node

app.post('/data', urlencodedParser, function(req, res) {
    //config = DB auth data

    var pool = new pg.Pool(config);

    pool.query('SELECT url FROM imgs WHERE uid=$1 OR uid=0', [usid], function(err, result) {
      if (err) {
        console.log(err);
        res.status(400).send(err);
      }
      imgs = JSON.stringify(result.rows);

      res.send(imgs);
    });
    // Rest of the code ...
  }
});
<html>

<body>
  <button type="button" onclick="server()">submit</button>
  <p id="demo"></p>
  <script>
    function server() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML =
            this.responseText;
        }
      };
      xhttp.open("POST", "http://localhost:8000/data", true);
      xhttp.send();
    }
  </script>

</body>

</html>

更新:事实证明,我需要CORS才能完成此工作。感谢大家的帮助和@Quentin的帮助,以发现我的失踪。

1 个答案:

答案 0 :(得分:-1)

尝试使用Jquery,

在您的后端,您的xhttp请求可以如下替换:

功能server(){ var body = {“名称”:“鲍勃”}; //无论您希望传递给发布请求的任何数据

$。ajax({       输入:“ POST”,       网址:“ http://localhost:8000/data”,       数据:JSON.stringify(body),       成功:功能(结果){           console.log(result);       },       contentType:“ application / json”   }); }