为了进行身份验证,我已经从backbone.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');
});
在重定向主页后,我得到了控制台结果,但我无法重定向到另一个网页。如何解决这个问题,然后无论如何都要发送响应,只为后请求(上述职位要求)。如果我发送对post请求响应,我可以很容易地在success函数中接收到该响应,然后我可以继续我的工作,但是在Passport中只有redirect选项,因此它将转到另一个get请求,从这里我如何发送响应到前端?2我在哪里可以接收?3那么如何发送响应而不重定向?4如何解决这个问题?
2条答案
按热度按时间p8h8hvxi1#
model.save
将向您的服务器发出 AJAX 请求。我想当你做
res.sendfile('/mainpage.html');
的时候,它会在 AJAX 响应中返回html页面。你能在浏览器的开发者控制台中检查吗?你应该检查一下,如果请求是 AJAX ,那么返回一个
401
http状态代码,并在客户端使用window.location="/mainpage.html"
进行重定向xmjla07d2#
它可能会帮助您响应相同发布请求
app.post,护照,身份验证,本地,{失败重定向:“/登录”}),函数(请求,资源){资源重定向(“/mainpage”);});