【发布时间】:2014-07-15 05:03:48
【问题描述】:
我一直在寻找如何做到这一点 - 我试图在发出 DELETE 请求后重定向 - 这是我正在使用的代码 WITHOUT THE REDIRECT:
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) 让它不挂在删除请求上) - 但现在我无法重定向。如果我在remove 函数中使用res.redirect('/forum'),如下所示:
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');
});
};
它将重定向注册为尝试删除/forum 的DELETE 请求,如下所示:
DELETE http://localhost:9000/forum 404 Not Found 4ms
我要做的就是刷新页面,以便在删除后更新帖子列表。任何人都可以帮忙吗?
【问题讨论】:
-
我和你有同样的问题。一切安好。但是
res.redirect不会重新加载页面。 -
@novaline - 你也在使用角度吗?我最终不得不在我的前端做一些事情,而不是在快递方面 - 请参阅下面的答案。
-
不,我使用 jQuery。我想通过服务器端重新加载页面。有点奇怪。当我执行
create操作(POST,表单操作)时,res.redirect工作。但是delete操作 (POST, $.ajax) ,res.redirect很好,没有错误。但问题是它没有刷新页面。我可以看到从服务器端返回的网络response。 -
尝试在您的 jquery 端使用
window.location.href = url;。那是直接的javascript ...我认为jquery版本是$(window).location.href =,但两者都应该做同样的事情。url是您要重定向到的位置。你只需要把它放在正确的地方。也与 jquery 。如果你愿意,我可以帮助你找到合适的地方。您可以使用它来代替服务器端 res.redirect,您只需使用来自服务器端的消息来触发它。 -
谢谢。但我的问题是为什么浏览器不刷新页面然后我在服务器端调用
res.redirect。 http 状态为 200,您可以看到响应(html文档)由服务器端返回。我知道如何在客户端做到这一点。因为使用ajax?也许form action请求可以吗?
标签: javascript redirect express request http-delete