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

AJAX提交时调用PHP发送邮件功能不工作该如何排查

问题排查

1. AJAX请求地址错误

你当前main.js中AJAX配置的请求路径是dateien/ajax/premium_account.php,但你实际要调用的是用来发邮件的email.php,路径完全不匹配,自然不会触发email.php里的代码逻辑。
修复方式:把url参数值改为你email.php对应的实际访问路径即可。

2. 请求参数格式错误

你当前写的data: '{pressed:pressed}'是字符串格式,既不是合法的JSON,也不是jQuery默认支持的表单数据格式,后端PHP无法正常解析接收参数。
修复方式:直接传JS对象,jQuery会自动格式化适配:

data: {pressed: 'pressed'},

3. email.php代码逻辑顺序错误

你现在把发邮件的逻辑写在了isset($_POST)判断的前面,只要文件被访问就会先执行发邮件逻辑然后直接exit(),后面的POST判断代码永远不会被执行。另外mail()函数的第四个参数是邮件头,不能直接填写发件人地址,需要符合标准格式。
修复后参考代码:

<?php
// 先校验POST请求
if (isset($_POST['pressed'])) {
    $sender = "From: sender@example.com\r\n";
    if(mail('info@example.com', 'FTP', 'Test', $sender)) {
        echo json_encode(['status' => 'success', 'msg' => 'sent mail']);
    } else {
        echo json_encode(['status' => 'error', 'msg' => 'error sending email']);
    }
    exit();
}
?>

4. AJAX配置不匹配

你设置了datatype: 'JSON'(注意参数名大小写敏感,正确写法为dataType),但原PHP代码返回的是普通字符串,可能会导致jQuery解析响应时报错,建议和上面修改后的PHP代码配合,统一返回JSON格式即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:24:04