我很难设置我的客户端ajax调用来向节点快速服务器发送数据。 我想解雇我的ajax请求" onclick"一个href链接。
我尝试将链接的ID作为变量发送到服务器,但服务器没有收到我的数据(没有setInterval)
如果我把ajax请求放在setInterval()
内(我不想这样做,因为我只想在链接被点击到服务器后发送数据),
服务器接收res.req.body
中的数据,为什么?
客户方:
$('.link_group').click(function () {
data = $(this).attr('id');
$.ajax({
type: "POST",
url: "/ajax_handler",
data: {id: data}
});
});
服务器端
app.post("/ajax_handler", function(req, res) {
res.send({ //works as it should....
user : req.session.user,
data_objekt: req.session.data
});
if(res.req.body) {
console.log(res.req.body);
}
});
这甚至是一种常见的方式来捕捉"来自客户的数据?
if(res.req.body) {...
似乎不对,但我不知道如何以更聪明的方式做到这一点/无法找到任何好的例子。
我即将向/ajax_handler
发送3-4个Ajax其他请求,这导致了我的下一个问题:如何处理对同一个网址的多个ajax请求?
提前致谢!
答案 0 :(得分:0)
您正在解析请求吗? req.body最初为空/未定义。您需要将其传递给将数据解析为req.body的中间件。 Body-parser是一个可以实现此目的的nodejs模块。以下是发送JSON数据的POST请求的方法。
const bodyParser = require('body-parser')
app.use(bodyParser.json());
app.post("/ajax_handler", function(req, res) {
res.send({ //works as it should....
user : req.session.user,
data_objekt: req.session.data
});
if(req.body) {
console.log(req.body);
}
});