好的,所以我的js每3秒发送一次XMLHTTPRequest帖子,并将用户名和密码作为有效载荷。我的问题是,当未通过表单提交而是通过js提交时,如何读取此有效载荷?

客户端js

setInterval(() => {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', "../getchat", true)
    xhr.onreadystatechange = (e) => {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var response = JSON.parse(xhr.responseText);
            document.getElementById("chat").innerHTML = ""
            for (let i = 0; i < response.length; i++) {
                const element = response[i];
                document.getElementById("chat").innerHTML += "<p>" + element + "</p>"
            }
        }
    }
    xhr.setRequestHeader("Content-Type", "application/json")
    xhr.send({username: "#{username}", password: "#{password}"})

    }, 3000);```

最佳答案

您需要调用JSON.stringify()将对象转换为JSON。

xhr.send(JSON.stringify({username: "#{username}", password: "#{password}"}));


然后,请参见How do I consume the JSON POST data in an Express application了解如何解析node.js代码中的JSON。

09-25 17:33
查看更多