我正在尝试使用POST
请求从前端从后端节点服务器获取数据,但是HTML似乎无法正确捕获和显示数据。我已经使用Postmaster测试了后端,数据也很好。有人可以帮我从这里出去吗?由于项目的完整代码相当庞大,因此我现在将添加相关代码段。
后端为node.js:
#!/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的帮助,以发现我的失踪。
答案 0 :(得分:-1)
尝试使用Jquery,
在您的后端,您的xhttp请求可以如下替换:
功能server(){ var body = {“名称”:“鲍勃”}; //无论您希望传递给发布请求的任何数据
$。ajax({ 输入:“ POST”, 网址:“ http://localhost:8000/data”, 数据:JSON.stringify(body), 成功:功能(结果){ console.log(result); }, contentType:“ application / json” }); }