返回node.js中的response.sendRedirect返回JSON而不是渲染页面

时间:2016-10-25 06:44:20

标签: javascript node.js express

我在使用express 4的node.js应用程序中使用response.redirect,重定向代码在JSON中返回302重定向响应但不呈现页面

这是我的简单重定向代码

app.post('/signup', function (req, res) {
    console.log("Got signup request");
    return res.redirect('/login');
});

我尝试了res.render,但仍然没有运气。

有趣的是,我确实在登录模块上收到了请求,但是如何呈现页面呢? 我现在能想到的唯一选择是在UI中读取JSON响应,然后将其重定向到Login页面。 但这会:

  1. 点击目标页面的两个请求(现在它是登录,但是 想象一下,如果是其他主要页面)
  2. 揭露重定向的逻辑,这是一个坏主意
  3. 无法从一个传输数据 页面到另一个(我不想使用localStorage或 sessionStorage here)
  4. 非常感谢您的帮助 提前谢谢。

    编辑:1 登录路线

    app.get('/login', function (req, res) {
        console.log("Got a login request");
        res.sendFile(GLOBAL.basePath+'/resources/login.html');
    });
    

1 个答案:

答案 0 :(得分:0)

好的! Express无法从ajax调用执行重定向。 然后,重定向逻辑将从ajax成功响应中得到处理。

res.redirect from POST

Express js - can't redirect

还有很多其他链接可以帮助解决这个问题