我正在尝试重定向成功注册。我把这个基本代码拼凑在一起来测试原理:
app.post('/register', function(req, res, next) {
User.findOne({ username: req.body.username }, function (err, user) {
if (err) { return done(err); }
if (user) {
res.send(400);
} else {
var newUser = new User({ username: req.body.username, password: passwordHash.generate(req.body.password)});
newUser.save();
req.logIn(newUser, function(err) {
if (err) return next(err);
return res.redirect('/my-events');
})
}
});
});
然而,当这触发时,我的浏览器会看到302,然后是/ my-events端点提供的页面的成功GET ...但没有重定向。
怎么了?使用res.redirect在浏览器加载端点时起作用,它似乎不能作为$ .post的结果。
答案 0 :(得分:1)
您提到您使用$.post
发送数据。如果是这种情况,那么服务器将无法重定向到实际页面。您需要做的是在post函数的回调函数中手动重定向页面,如此。
$.post('your endpoint',function(){
window.location = 'page to redirect to';
});
这应该这样做。