场景描述:执行pmpm run dev本地运行开发调试项目,然后复制访问的地址http://192.168.0.180:3000/ 到浏览器访问,发现控制台中日志都没有了
原因:从 Next.js 15.2+ 开始(尤其是 15.2.2 及以后版本),官方引入了一个开发模式下的安全防护
- Next.js dev server 默认只允许从 localhost(或启动时指定的 hostname)发起请求。
- 为了防止恶意网站通过浏览器访问你本地的开发服务器(可能导致信息泄露或 CSRF 类攻击),Next.js 对来自其他 origin 的请求做了限制。
- 你用 IP 地址 192.168.0.180:3000 访问(而不是 localhost:3000 或 127.0.0.1),这就被视为 cross-origin 请求。
解决办法:
- 直接使用 http://localhost:3000 访问调试就能出现日志
- 如果简直要使用本机ip地址访问,通过allowedDevOrigins配置允许额外的origin即可
在next.config.ts中配置
- 如果简直要使用本机ip地址访问,通过allowedDevOrigins配置允许额外的origin即可
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
allowedDevOrigins: ["192.168.0.180"], // 设置允许了就会有日志
};
export default nextConfig;