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'; });
这应该做到这一点。