Express 4.x重定向

时间:2018-06-23 13:32:10

标签: node.js http express

我需要一些帮助来了解这种重定向的工作原理(以及为什么没有按照我的预期去做):

问题: 我有一个带有“注销”按钮的HTML页面,该按钮触发了jQuery代码段:

$.ajax({
        type: "POST",
        url: "https://localhost:8000/chat",
        data: {logout_msg: "get_out"},
        success: (data, textStatus, jqXHR) => {

        },
        dataType:"json"
});

该按钮有效,我在这里的NodeJS服务器中捕获了“ POST”:

app.post('/chat', (req, res) => {
   req.session.destroy((error) => {
      if (!error) {
         res.redirect("/login");
      } else {
         console.log(error);
      }
});

浏览器收到响应: web-console

但是没有网页重定向。浏览器不会加载其他重定向页面。我在Firefox和Chrome中尝试过此操作。两者的行为方式相同,因此我认为这是我的代码中的某些内容。我想念什么?谢谢。

2 个答案:

答案 0 :(得分:1)

您仅“重定向” jquery的请求。如果要在浏览器中打开其他页面,请使用HTML表单发送注销请求,或在成功处理程序中使用location.href ='...'。

答案 1 :(得分:0)

您不需要JQuery进行简单注销。

只需添加HTML <form action="/logout" method="post">

在服务器端

app.post('/logout', (req, res) => {
   req.session.destroy((error) => {
      if (!error) {
         res.redirect("/login");
      } else {
         console.log(error);
      }
});

希望这会有所帮助。