我一直在搜索如何执行此操作 - 我正在尝试在发出DELETE请求后重定向 - 这是我正在使用的代码没有重定向:
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
});
};
删除项目(帖子)时会调用 remove
。一切正常(我必须使用res.send(200)
让它不挂在删除请求上) - 但现在我无法重定向。如果我在res.redirect('/forum')
函数中使用remove
,请执行以下操作:
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
res.redirect('/forum');
});
};
它将重定向注册为尝试删除DELETE
的{{1}}请求,如下所示:
/forum
我要做的就是刷新页面,以便在删除后更新帖子列表。有人可以帮忙吗?
答案 0 :(得分:4)
我知道这已经很晚了,但是对于后来看到这个的人来说,你也可以手动将HTTP方法重置为GET,这也应该有效
exports.remove = function(req, res) {
var postId = req.params.id;
Post.remove({ _id: postId }, function(err) {
if (!err) {
console.log('notification!');
res.send(200);
}
else {
console.log('error in the remove function');
res.send(400);
}
//Set HTTP method to GET
req.method = 'GET'
res.redirect('/forum');
});
};
答案 1 :(得分:3)
res.redirect
添加可选的状态代码参数,如下所示:
res.redirect(303, "/forum");
这会重定向“未定义的原因”,默认为GET重定向。
有关详细信息,请参阅this SO post。
答案 2 :(得分:2)
我使用$window.location.href = '/forum';
在我的Angular端工作 - 只需将它放在$http
请求的成功函数中,该delete
请求是&{{1}}函数的一部分,当& #34;删除"单击按钮。