0

为了进行身份验证,我从主干.js 向服务器发送了 post 请求,如下所示:

model.save({"email":"sil@gmail.com","password":"silvester"}, {
   successs:function(model,res){

   },
   error:function(){

   }
});

我在服务器端收到这样的:

app.post('/login', passport.authenticate('local', {
    successRedirect: '/mainpage',
    failureRedirect: '/login'
}));

在上面的编码中,如果身份验证成功,我将重定向到主页,然后我尝试显示另一个 html 页面,如下所示:

app.get('/mainpage',function(req,res) {
    console.log("mainpage");
    res.sendfile('/mainpage.html');
});

重定向该主页后,我得到了控制台结果,但我无法重定向到另一个网页。如何解决它,然后无论如何只为该发布请求发送响应(上述发布请求)。如果我发送对该发布请求的响应,我可以在成功函数中轻松接收该响应,然后我可以继续我的工作,但是在护照中只有重定向选项,所以它会去另一个获取请求,我如何向前端发送响应?我在哪里可以收到?那么如何在没有重定向的情况下发送响应以及如何解决这个问题?

4

2 回答 2

0

model.save将向您的服务器发出 ajax 请求。

我认为当你这样做时res.sendfile('/mainpage.html');,它会在 ajax 响应中返回 html 页面。您可以在浏览器中查看开发者控制台吗?

您应该检查请求是否为 ajax,然后返回401http 状态代码并使用在客户端进行重定向window.location="/mainpage.html"

于 2013-03-09T07:16:05.717 回答
0

它可以帮助您回复相同的帖子请求

app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/mainpage'); });

于 2014-06-24T10:28:00.993 回答