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

Laravel邮件发送异常排查:点击提交无反应且控制台报uncaught错

Laravel邮件发送无响应+控制台uncaught报错排查

核心错误排查与修复

1. 路由与控制器方法不匹配

路由定义的控制器方法是cariemail,但ForgotPasswordPDF2控制器中实际存在的方法是sendPassword,请求会触发方法不存在的致命错误,直接导致前端无响应。
修复:
修改路由的方法名:

// Lupa kata laluan PDF
Route::post('forgotpasswordpdf', [ForgotPasswordPDF2::class, 'sendPassword'])->name('cari.email');

2. 表单提交未阻止默认行为

点击提交按钮时,浏览器会触发默认页面刷新,中断AJAX请求,这是控制台出现uncaught报错的核心原因之一。
修复:
在submit函数中添加阻止默认行为的代码:

const submit = (e) => {
    e.preventDefault(); // 阻止表单默认提交逻辑
    post(route('cari.email'), { email: document.querySelector('input[name="email"]').value });
}

3. AJAX请求未传递表单参数

当前post方法未携带表单中的email参数,控制器中$request->email会为空,导致后续查找用户、发送邮件的逻辑全部失效。
修复:
在请求中传入表单数据(以常用的axios为例):

import axios from 'axios';

const submit = (e) => {
    e.preventDefault();
    const email = document.querySelector('input[name="email"]').value;
    axios.post(route('cari.email'), { email })
        .then(res => console.log(res.data.message))
        .catch(err => console.error(err.response?.data || err.message));
}

4. 自定义用户查询方法可能不存在

控制器中调用的User::findUserByEmail($email)如果未在User模型中定义,会直接抛出错误中断请求。
修复:
要么在User模型中添加该静态方法:

// App\Models\User.php
public static function findUserByEmail($email)
{
    return self::where('email', $email)->first();
}

要么直接替换为Laravel原生查询:

$user = User::where('email', $email)->first();

5. 邮件发送未处理异常

若邮件配置错误(如SMTP参数有误)或发送失败,Laravel会抛出未捕获的异常,导致无法返回JSON响应,前端出现uncaught错误。
修复:
添加异常捕获逻辑,确保请求始终返回JSON:

public function sendPassword(Request $request)
{
    try {
        $email = Str::lower($request->email);
        $user = User::where('email', $email)->first();

        // 校验用户是否存在
        if (!$user) {
            return response()->json(['message' => '用户不存在'], 404);
        }

        Mail::to($email)->send(new MailForgotPasswordPDF);

        return response()->json(['message' => 'hantarpassword.success']);
    } catch (\Exception $e) {
        \Log::error('邮件发送失败:'.$e->getMessage());
        return response()->json(['message' => '邮件发送失败,请稍后重试'], 500);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:35:35