今天本地跑一个Nuxt的Web项目,启动等一切都正常,但是打开页面只显示 `Upgrade Required`,控制台全是 `426`。我第一反应是端口或 nuxt-auth 配错了,把 `1999、3666、9999、3003` 换了一圈,没用。
对照其他项目改了 auth 和端口对齐,还是不行。最后用 PowerShell 测了一下:
- `http://127.0.0.1:1999/ → 200`
- `http://localhost:1999/ → 426`
原来问题不在业务代码,也不在端口号。
原因:Windows 上 localhost 会优先走 IPv6 的 ::1,不是 127.0.0.1。这是 IPv6 启用后的老行为,不是 Win11 新问题,但不知道为什么以前没有出现过这个问题!?
`Nuxt/Vite` 开发服务是包含 HMR WebSocket,从 ::1 进来的普通 HTTP 请求有时会被当成要「协议升级」,就回了 426。走 127.0.0.1 的 IPv4 就正常。
## 解决
开发用 **http://127.0.0.1:1999**,别用 `localhost`。
> PS:这个新项目让AI创建并编写的,也可能哪个地方的细节配置不对,但是我并不了解,所以就临时用 `127.0.0.1` 吧~