You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 14中route.ts重定向报错:Invalid URL问题求助

Next.js route.ts重定向后抛出Invalid URL错误解决办法

你遇到的问题是:在route.ts中使用硬编码的http://localhost:3000/result执行重定向后,页面能成功跳转,但随即抛出TypeError: Invalid URL错误,错误日志显示input: 'null'且关联页面为/result。

问题根源

报错的核心并非初始重定向逻辑,而是跳转后的/result路由在处理请求时,尝试解析一个null值的URL,导致服务器抛出异常。同时硬编码localhost的写法也存在环境适配问题。

解决步骤

  1. 规范重定向URL的构建方式
    不要硬编码localhost,改用当前请求的基础URL动态构建目标地址,适配所有环境:

    import { NextResponse, NextRequest } from 'next/server';
    
    export async function POST(request: NextRequest) {
      // 动态获取当前站点的origin(如开发环境的http://localhost:3000,生产环境的域名)
      const targetUrl = new URL('/result', request.nextUrl.origin);
      return NextResponse.redirect(targetUrl);
    }
    
  2. 排查/result路由的代码
    检查app/result/route.ts(或pages路由下的对应文件)中的逻辑,确认是否存在以下情况:

    • 尝试读取某个可能为null的URL参数或请求数据,并将其作为URL使用
    • 返回了无效的响应对象,或错误地处理了请求导致URL解析异常
  3. 验证路由配置
    确保/result路由的文件结构符合Next.js的路由规则,没有拼写错误或配置冲突。

内容的提问来源于stack exchange,提问作者DragonSlayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:32:34