Javascript Ajax和PHPMailer错误

Javascript Ajax和PHPMailer错误,javascript,ajax,phpmailer,Javascript,Ajax,Phpmailer,我正在改进代码,但遇到了一些问题 我正在尝试向我的一个用户发送电子邮件。如果电子邮件存在,我没有问题,相反,如果不存在的网站应用程序爆炸 这是我使用ajax的js代码: callAjax(url, paramsInsert, true, function (data) { if (data.success) { modal("OK", "<h3>ALL OK</h3>", "OK"); } else { modal("err

我正在改进代码,但遇到了一些问题

我正在尝试向我的一个用户发送电子邮件。如果电子邮件存在,我没有问题,相反,如果不存在的网站应用程序爆炸

这是我使用ajax的js代码:

callAjax(url, paramsInsert, true, function (data) {
    if (data.success) {
        modal("OK", "<h3>ALL OK</h3>", "OK");
    } else {
        modal("error", "<h3> ERROR </h3>", "Error");
    }
});
仍然得到相同的错误:

jsontext=“SMTP错误:以下收件人失败:gjdfhgdf@dfgndfjkgd.com::收件人地址被拒绝:找不到域 ↵{“success”:false,“jsontext”:“Error”}

我还尝试在创建新PHPMailer时添加参数:

$mail = new PHPMailer(false);

    $mail->isSMTP();
    $mail->SMTPDebug = false;
    $mail->do_debug = 0;
可在此帖子上找到:

解决方案:

我通过以下代码找到函数:

if (!$mail->send()) {
        echo $mail->ErrorInfo;
        $estado = false;
    }

因此,我刚刚评论了First lane以禁用Errorinfo打印:)

要进入该
中,您需要确保
数据。success
包含的值不会被视为
true
,这取决于您从PHP返回的值,而不是JS中的值

如果希望将返回值作为JSON处理,则需要实际从PHP返回JSON,而您的示例
jsontext
不是

在您的PHP中,它类似于:

if (!$mail->send()) {
    echo json_encode(['success' => false, 'jsontext' => $mail->ErrorInfo]);
} else {
    echo json_encode(['success' => true, 'jsontext' => 'OK']);
}

只需将PHPMailer设置为不显示任何调试输出即可修复,否?@CBroe我尝试过,lokk at edit:(您所说的作为输出获取的内容与所显示的PHP代码不匹配。
jsontext
属性将包含除
Error
OK
之外的任何内容都毫无意义,因为这是您在所显示的代码中为该属性设置的唯一两个值。是的,看起来像您“我没有在这里包括您的所有代码。在接收端,
jsontext
将包含脚本输出的所有内容,因此您必须有其他输出以及预期的JSON内容。@Synchro您是对的,我编辑了这篇文章,因为我是通过函数找到这段代码的。谢谢!
if (!$mail->send()) {
        echo $mail->ErrorInfo;
        $estado = false;
    }
if (!$mail->send()) {
    echo json_encode(['success' => false, 'jsontext' => $mail->ErrorInfo]);
} else {
    echo json_encode(['success' => true, 'jsontext' => 'OK']);
}