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

Next.js API Routes异常处理:前端无法展示Laravel后端错误信息

问题排查与解决思路

1. Laravel后端HTTP状态码设置错误

当用户邮箱未找到时,Laravel返回的是{ success: false, message: 'User is not registered.' },但如果同时返回了**500(服务器内部错误)**状态码,Axios会将其判定为服务器级错误,不会自动解析响应体里的具体信息。

正确做法是返回客户端错误状态码(比如404或400),示例代码:

return response()->json([
    'success' => false,
    'message' => 'User is not registered.'
], 404); // 按语义选404或400均可

2. Next.js API Route未正确转发后端响应

如果你的Next.js中转接口没有同步Laravel的响应状态码和错误内容,会导致前端拿到的是Next.js自己抛出的500错误,而非后端的具体信息。

错误的中转写法:

// pages/api/forgot-password.js
import axios from 'axios';

export default async function handler(req, res) {
  try {
    const response = await axios.post('https://your-laravel-domain/forgot-password', req.body);
    res.status(200).json(response.data);
  } catch (error) {
    // 错误:直接返回500,丢失后端错误信息
    res.status(500).json({ error: 'Server Error' });
  }
}

正确的中转写法:

// pages/api/forgot-password.js
import axios from 'axios';

export default async function handler(req, res) {
  try {
    const response = await axios.post('https://your-laravel-domain/forgot-password', req.body);
    res.status(response.status).json(response.data);
  } catch (error) {
    if (error.response) {
      // 转发后端的状态码和错误内容
      res.status(error.response.status).json(error.response.data);
    } else {
      res.status(500).json({ message: '请求后端失败' });
    }
  }
}

3. 前端Axios错误处理未提取响应内容

即使后端和中转接口都配置正确,若前端错误捕获时未访问error.response.data,也拿不到具体错误信息。

错误的前端处理:

axios.post('/api/forgot-password', { email })
  .then(res => { /* 处理成功逻辑 */ })
  .catch(error => {
    console.log(error); // 仅打印错误对象,未提取响应体
    alert('请求失败');
  });

正确的前端处理:

axios.post('/api/forgot-password', { email })
  .then(res => { /* 处理成功逻辑 */ })
  .catch(error => {
    if (error.response) {
      // 提取后端返回的错误提示
      alert(error.response.data.message);
    } else {
      alert('网络异常,请稍后重试');
    }
  });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 14:42:45