我正在尝试将输入字段值作为对象发布到NodeJs控制器。在这里,我正在使用本地ajax POST方法。然后在nodejs上使用body-parser包来访问POST请求。但是当我登录res.body时,我看到它是空的。我是Ajax和NodeJ的新手。抱歉,如果我犯了任何明显的错误...
window.addEventListener("load" , () => {
let formSubmit = document.querySelector("#formSubmit");
formSubmit.addEventListener("submit", (e) => {
e.preventDefault();
let inputTodo = document.querySelector("#inputTodo").value;
let todo = {item : inputTodo};
let xhr = new XMLHttpRequest();
xhr.open("POST" , "/todo" , true);
xhr.setRequestHeader("Content-type", "application/json");
let data = todo;
console.log(data)
xhr.send(data);
location.reload();
})
});
app.post("/todo" ,urlencodedParser, (req, res) => {
console.log(req.body)
data.push(req.body);
res.json(data);
})
答案 0 :(得分:0)
就像您正在发送和未定义的数据对象一样,对于我在代码中看到的内容,在调用.send(data)方法之前,您从未为数据变量分配任何值。所以尝试一下,应该可以
xhr.send({id: 'example_id'});
答案 1 :(得分:0)
以POST形式以模板引擎形式定义方法为我解决了这个问题。默认情况下,它是一个GET方法,但是以某种方式使用jQuery Ajax时,我们不需要更改该方法。而且效果很好。但是,如果要使用本机Ajax,则即使将类型定义为POST,也必须以表单的形式设置POST方法。
node_modules