我正在开发一个从同一台机器运行的网站(客户端+服务器)。 我没有在chrome的开发人员工具中发现任何错误,所以我不知道问题出在哪里。
我尝试将一个字符串从客户端发送到Node后端,但是在执行
时 url.parse(request.url, true).query
结果为空。
这是我的客户:
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://localhost:8080/newComment", true);
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhttp.send("val=" + commentString);
我的评论字串是“嘿那里”
这是我的服务器:
var path = url.parse(request.url).pathname;
else if (path == "/newComment") {
console.log("query: " + url.parse(request.url, true).body);
//setNewComment(comment);
response.writeHead(200, {
'Content-Type': 'text/plain',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE'
}); // enable cors
response.write("Recieved request");
response.end();
}
我在网站
file:///C:/Users/.../website.html?name=hey+there
所以我希望我的节点服务器打印出“查询:嘿那里”,而是打印“查询未定义”
答案 0 :(得分:0)
您正试图访问正文,这是正确的,但网址并不包含正文内容,您应该通过收听数据来积累它。事件:
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// at this point, `body` has the entire request body stored in it as a string
});
或使用"表达"和"身体解析器"。
1.转到请求正文部分:https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/