Node.js在response.redirect后保留URL哈希值

5

我看到很多JavaScript的解决方案都使用window.location,但是没有Node.js的。

我正在使用OAuth将用户连接到Facebook。授权后,Facebook会重定向到回调URL并在其末尾添加“#=”。问题在于我的回调路由重定向到另一个URL,但URL片段(哈希)仍然存在。

这是我用于Facebook回调的路由:

exports.facebook_signin_complete = function(req, res)
{
    res.redirect('/profile');
};

如果我去掉重定向,URL 就是 /auth/facebook/callback#_=_,如果我保留重定向,URL 就是 /profile#_=_。为什么哈希值会被带过来呢?那是一个特定页面的锚点标记,所以如果它真的这样做,我会非常惊讶。
1个回答

3
URL中的哈希值只存在于客户端,所以无法从服务器端修改。当我遇到同样的问题时,我最终只是在初始JS文件的顶部添加了window.location.hash = '';参考链接

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接