【发布时间】:2018-01-12 18:37:55
【问题描述】:
我有一个站点存在于开发、登台和生产服务器上。在开发和登台服务器上,功能是 100% 正常的,但是在生产服务器上发生了最奇怪的事情——“未定义”被添加到 URL 路径中。
这是正在发生的事情的简短示例:
在 index.html 中,我有一个锚标记来注销带有护照的会话:<a href="auth/logout">Logout</a>。
它转到我的节点服务器上的这条路线:
// passport oauth logout
routes.get('/auth/logout', (req, res) => {
req.session.destroy((e) => {
req.logout();
res.redirect(config.redirects.env.prod);
});
});
在开发和暂存时,这会破坏会话并将您重定向到 /。在生产环境中,当您单击该按钮时,它会将您随机带到此 URL https://somesite.com/auth/undefined。
关于如何调试它的任何想法?这对我来说毫无意义,而且我在服务器端或标记中找不到任何会导致这种情况的东西,特别是因为它在开发和登台上都可以使用。所有服务器都是以完全相同的方式设置的 Ubuntu 服务器。
【问题讨论】:
-
您的其他路线是否正在受到刺激?
-
您登录
config.redirects.env.prod以确保它是正确的值吗? -
@Anselm 这发生在唯一的其他路线上:somesite.com/auth/facebook/callback 变成了somesite.com/auth/facebook/undefined。
-
@PatrickEvans 可以确认它是正确的值
-
这可以像更改
auth/logout一样简单->/auth/logout
标签: javascript html node.js routes