我是使用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页面中显示该消息?
其实我理解你的片段。我也明白第一次使用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 */)