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

Gav*_*vin 5 javascript node.js facebook-oauth

我已经使用 看到了许多针对此的 JavaScript 修复window.location,但对于 Node.js 没有任何修复。

我正在使用 OAuth 将用户连接到 Facebook。获得授权后,Facebook 会重定向到您的回调 URL 并在其后附加“# = ”。问题出在我的回调路由中,我重定向到另一个 URL,但 URL 片段(哈希)正在被转移。

这是我的 Facebook 回调路线:

exports.facebook_signin_complete = function(req, res)
{
    res.redirect('/profile');
};
Run Code Online (Sandbox Code Playgroud)

如果我删除重定向,则 URL 为/auth/facebook/callback#_=_,如果我保留重定向,则 URL 为/profile#_=_。为什么哈希被结转?这是一个页面特定的锚点标记,所以如果这是它应该做的,我会感到非常惊讶。

Som*_*ens 3

URL 中的哈希值仅适用于客户端,因此您无法从服务器端修改它。 当我遇到同样的问题时,我最终只是将其添加window.location.hash = '';到初始 JS 文件的顶部。