带有令牌的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
对其进行处理。