我已经看到许多 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#_=_
。为什么要保留哈希值?这是一个页面特定的 anchor 标记,所以如果这是它应该做的,我会感到非常惊讶。
最佳答案
URL 中的散列只是客户端的,因此您不能从服务器端修改它。 When I ran into the same problem我最终只是将 window.location.hash = '';
添加到我的初始 JS 文件的顶部。
关于javascript - Node.js 在 response.redirect 之后保留 URL 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24318359/