带有令牌的Node.js响应,然后res.render或重定向
我已经成功地生成了一个令牌,甚至在服务器端进行了验证。 我现在遇到的问题是,我无法返回令牌并重定向或呈现页面。我可以做一个或另一个,但不能两者都做!似乎当一个被使用时,它调用一个端点,不允许第二个端点,或者它遇到发送头问题(即头已经发送)。代码如下:带有令牌的Node.js响应,然后res.render或重定向,node.js,token,response.redirect,Node.js,Token,Response.redirect,我已经成功地生成了一个令牌,甚至在服务器端进行了验证。 我现在遇到的问题是,我无法返回令牌并重定向或呈现页面。我可以做一个或另一个,但不能两者都做!似乎当一个被使用时,它调用一个端点,不允许第二个端点,或者它遇到发送头问题(即头已经发送)。代码如下: else { //This res works fine on its own res.json({ success: true,
else {
//This res works fine on its own
res.json({
success: true,
message: 'Enjoy your token!',
token: token
});
//This res works fine on its own
res.redirect('/control');
}
下面是有效的代码。还发现了这一点,这就更详细地解释了我所遇到的错误。我试过一些,但没有一个对我有效
success : function(responseText, status, xhr, $form){
if (status == 'success')
window.location.href = '/' + '?token=' + token ;
当您获得令牌时,为什么不在客户端重定向?或者在头中设置令牌,然后重定向?我得到的实际错误是:“错误:发送后无法设置头”。这是因为
res.json
和res.redirect
都会结束响应。所以绝对没有办法同时使用这两个选项?不。或者客户端需要对json做出反应,或者,您需要分离调用并添加一些中间件以将令牌添加到重定向,在这种情况下,客户端很可能拥有令牌。第三个选项是重定向('/control?token='+token)
,然后您可以使用req.query.token
对其进行处理。