/**
* @api {post} /logout Logout from system
* @apiName Logout
* @apiGroup Login
*/
router.post("/logout", function (req, res) {
req.logout();
req.session.destroy();
return res.redirect("/");
});我读过Node.js Express : How to redirect page after processing post request?,但不知道答案。
最近,我将登录更改为POST而不是GET。这样做后,重定向不起作用
POST /logout 307 4.912 ms - 36
POST / 302 3.922 ms - 23
GET / 200 7.519 ms - -我可以在客户端手动完成,但我也想知道如何在服务器端这样做。这个是可能的吗?
客户端
HTML
<a href="javascript:;" onclick="logOut();">JS
function logOut() {
$.post("/logout");
}发布于 2016-07-19 04:39:44
没有从您的$.post()生成的Javascript生成的Ajax调用的重定向。Ajax发送一个请求,得到一个响应。ajax调用本身根本不改变页面位置。这是Ajax调用的一个特点。
重定向工作时,浏览器正在加载一个新页面,而服务器告诉它更改它正在加载到新源的页面,而不是当浏览器仅仅发送一个Ajax调用时。
当然,您可以使用客户端Javascript来决定在$.post()完成后从客户端重定向。您甚至可以让来自$.post()的响应成为新的位置,然后客户端Javascript可以将window.location设置为新的URL。
function logOut() {
$.post("/logout").then(function(data) {
window.location = data.redirectUrl;
});
}在服务器上:
router.post("/logout", function (req, res) {
req.logout();
req.session.destroy();
res.send({err: 0, redirectUrl: "/"});
});https://stackoverflow.com/questions/38449568
复制相似问题