如何解决无法从发布请求中获取文本回复的问题

时间:2019-04-30 23:28:44

标签: javascript html node.js rest

我是使用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页面中显示该消息,我需要更改什么?

1 个答案:

答案 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 */)