我是使用nodejs和javascript的新手,所以对不起,如果我做的事情显然不对,我感到抱歉。我有一个正在运行的nodejs应用程序,并提供一个html页面。该html页面可以使用XMLHttpRequest发送Post请求。该请求通过,并且我的节点应用程序调用了我的请求旨在调用的函数。问题是我想从该请求中获取一些数据,因此我试图从对该请求的响应中获取数据。问题是我收到的回应是空的,我不知道为什么。
这是我的要求。
function SendCachedTriangulation(){
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById('responseLog').textContent = "sent triangulation: " + this.response;
}
};
xhttp.open("Post", "/sendCachedTriangulation");
xhttp.setRequestHeader("Content-type", "application/json");
var text = '{ "data" : ' + '{ "someData":"' + '1' + '" } }';
xhttp.send(text);
return false;
}
我从中得到的结果是响应为空。它确实更新了我要更新的元素,但只显示了“已发送三角剖分:”。
在nodejs端,这是我的代码。
router.post('/sendCachedTriangulation', (req, res, next) => {
client.SendCachedTriangulation(() => {
res.status(200)
;}, req.body
);
res.status(200).message = "sent triangulation";
res.send();
});
这似乎正在调用我的函数以正确发送缓存的三角剖分,但我没有收到“已发送三角剖分”消息。
要在HTML页面中显示该消息,我需要更改什么?
答案 0 :(得分:2)
实际上我了解您的摘录。我还了解到,Node第一次使用起来很复杂,因为所有的都是Javascript。让我解释一下:在您的HTML中,认为请求是可以的,但实际上有两个文件:执行请求的HTML文件和响应请求的节点HTTP服务器。所以我的意思是:
// /server/app.js
router.post('/sendCachedTriagulation', (req, res, next) => {
res.status(200).send("sent triangulation")
})
// /client/index.html
client.SendCachedTriangulation(/* do stuff */)