表达申请。我通过ajax发布数据。我无法从我的路线中捕获数据。这是我的ajax:
function Confirme(commentid,status){
$.ajax({
url: '/Management/Comment/Confirm/',
type: "POST",
data: {"id": commentid,"status": status}
})
我正在向此函数发送commentid(345345345)和status(0)。 (也在萤火虫中试过)。这是我的路由代码:
app.post('/Management/Comment/Confirm/',function(req, res){
if(!req.session.email){
return res.render(__dirname+"../../../views/management/accessdenied.jade",{
title: 'Dont have permission',
stylesheet: 'accessdenied',
error: 'You are not authorized to access this page'
});
}
console.log('Is id correct:' +req.params.id);
Comment.findByIdAndUpdate( req.params.id, {"status": 1}, function(err, result) {
if (err) console.log(err);
console.log("result:"+result);
Comment.find({},function(err, comments){
console.log("comments: "+comments)
if(! comments.length) {
console.log('no comment');
}
return res.render(__dirname+"/views/commentindex",{
title: 'comment list',
stylesheet: 'commentindex',
comments:comments
});
});
});
});
但是这段代码总是让我回到未定义:
console.log(req.params.id);
我检查了萤火虫。我想可能是我无法将数据发送到我的ajax函数。但不是。这是萤火虫:
答案 0 :(得分:1)
您应该使用req.body.id
或req.param('id')
。
req.params
在路线网址中包含命名参数。例如:
app.post('/post/:id', ...);
^^^ this can be read using `req.params.id`
答案 1 :(得分:0)
你必须写req.body.id
。
对于POST请求,其req.body.params名称和GET请求其req.query.paramsName