Next.js的getInitialProps在Vercel生产环境报ERR_TOO_MANY_REDIRECTS错误
问题根源
你的代码触发了死循环重定向逻辑:当前逻辑设定为用户访问首页/时,如果检测到无cookie就直接重定向到/本身,重定向后页面再次命中相同的无cookie判断条件,无限循环最终抛出ERR_TOO_MANY_REDIRECTS错误。
本地运行正常是因为你之前测试时已经在浏览器写入过有效cookie,没有触发重定向判断,而线上环境首次访问无cookie直接触发循环。
修复方案
- 调整重定向目标路径:如果你的业务逻辑是无cookie时需要跳转到引导/登录页,直接把
Location的值修改为对应非首页路径即可,示例:
// 原错误代码 res.writeHead(301, { Location: "/" }) // 修改为如下格式,替换为你实际要跳转的路径即可 res.writeHead(302, { Location: "/onboarding" })
注意:测试阶段优先用
302临时重定向,301属于永久重定向会被浏览器长期缓存,容易残留旧逻辑影响测试。
- 如果业务不需要重定向,无cookie时直接返回默认初始化状态即可,直接删除整段重定向逻辑就能解决问题。
- 修复后优先用浏览器无痕模式测试,避免之前的301缓存影响验证结果。
内容的提问来源于stack exchange,提问作者Robby Hoover
相关产品推荐
相关产品推荐

