当前位置: 首页 > 面试题库 >

发布请求后重定向页面[Express 4]

岳劲
2023-03-14
问题内容

/*
* @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.jsExpress:处理帖子请求后如何重定向页面?但找不到答案。

我最近将注销更改为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");
    }

问题答案:

您的Javascript生成的Ajax调用没有重定向$.post()。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: "/"});
});


 类似资料:
  • 问题内容: 我希望ajax发布上的成功可以转到主页。由于某种原因,我一直做错了。知道我应该怎么做才能解决这个问题吗? 阿贾克斯 问题答案: 希望以上内容对我有所帮助,因为我遇到了同样的问题

  • 我是新来的Laravel,遇到了以下问题: 我有一个表单应该在Post请求时重定向,但重定向没有发生。 这是我的表格: 这是CartController: 这是路线: 当我点击submit按钮时,URL会被产品数据填满,但我会在同一个页面上看到,而不是被重新定向到购物车。 我不知道为什么会发生这种事。这是一种至少能找出什么东西坏了的方法吗?我使用的是5.7版本。

  • 我正在尝试使用重定向规则设置静态web托管。在我的应用程序中,任何具有前缀api/(http://web.company.com/api)的请求都应该重定向到具有相同前缀(http://api.company.com/api)的另一个主机。我已按以下方式设置路由规则: 但请求没有被正确重定向。控制台中有两个不同的错误: XMLHttpRequest无法加载http://api.company.co

  • 问题内容: 我正在做一个简单的论坛,由一系列论坛组成,每个论坛分别代表首页,主题,postitit,登录名和用户列表页面。在某些页面上,当用户未登录时会出现一个链接。 我想要实现的是在登录后触发重定向(在RequestDispatcher上使用forward()),以便浏览器返回到用户在单击登录链接之前所在的页面。为此,我看到了两种解决方案。 第一种解决方案是使用带有登录按钮的HTML 和一个不可

  • 主要内容:请求转发,重定向,2. 通过 ModelAndView 实现重定向Spring MVC 是对 Servlet 的进一步封装,其本质就是一个 Servlet,因此在 Spring MVC 中也存在转发和重定向的概念。 在 Spring MVC 中,我们可以在逻辑视图名中通过“forward:”和“redirect:”两个关键字来表示转发和重定向。 请求转发 我们可以在控制器方法指定逻辑视图名(View Name)时,使用“forward:”关键字进行请求转发操作。

  • 问题内容: 在一段时间后,有一些用于重定向的PHP函数。我在某处看到它,但记不起来了。就像登录后的gmail重定向一样。请有人提醒我吗? 问题答案: header( “refresh:5;url=wherever.php” ); 这是php的设置方式,它将在 5秒内* 将您重定向到 * 请记住,必须先通过常规HTML标记,文件中的空白行或从PHP发送任何实际输出,然后调用header()。读取包含