redirect在ExpressJS中不起作用

我正在尝试重新注册成功。 我把这个基本代码敲在一起来testing这个原则:

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,其次是一个成功的/我的事件端点提供的页面,但没有redirect。

怎么了? 使用res.redirect在浏览器加载一个端点的时候工作,它似乎并不是$ .post的结果。

您提到您使用$.post发送数据。 如果是这样的话,服务器将无法redirect到实际的页面。 你需要做的就是在post函数的callback函数中手动redirect页面,像这样。

  $.post('your endpoint',function(){ window.location = 'page to redirect to'; }); 

这应该做到这一点。