PHP邮件函数发送电子邮件,但AJAX函数出错

Posted

技术标签:

【中文标题】PHP邮件函数发送电子邮件,但AJAX函数出错【英文标题】:PHP mail function sends out the email, but the AJAX function errors out 【发布时间】:2017-01-05 23:13:00 【问题描述】:

我在 php 上使用“邮件”,它成功发送了电子邮件。 但是,我的 AJAX 的成功/错误函数出现错误。 我不断收到“电子邮件失败”的警报。 提前谢谢你。

PHP

<?php
    $emailTo = "test@test.com";
    $emailSubject = "Email Test";
    $emailBody = "Check Email";
    if(mail($emailTo, $emailSubject, $emailBody))
        echo "success";
    else
        echo "fail";
?>

AJAX

$.ajax(
    url:'email_data.php',
    type:'post',
    data:$('#postForm').serialize(),
    success:function(res)
    
        if(res=="success")
            alert("Email Sent");
        else
            alert("Email Not Sent");
    ,
    error:function()
    
        alert("Email Failed");
    
);

【问题讨论】:

将您的error:function() 更改为error:function(xhr, textStatus, errorThrown): 并在错误函数中执行alert(xhr.responseText); 我做了...但我得到一个空白。 查看AJAX响应的内容,有什么吗? 您向我们展示了您的 PHP 代码吗?因为如果是这样,您就不会从 PHP 中回显任何内容。 我已经更新了我的代码...这是我的原始代码,但由于它不起作用,我取出了 echo 和 AJAX 响应。 【参考方案1】:

代码:

success:function(res)

    if(res=="successful")
        alert("Email Sent");

应该是:

success:function(res)

    if(res=="success")
        alert("Email Sent");

这是因为您在 PHP 文件中 echoing 成功。

【讨论】:

对不起...这是一个错字。这是“成功”,但仍然收到错误警报。

以上是关于PHP邮件函数发送电子邮件,但AJAX函数出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 和 AJAX 发送电子邮件表单

使用 mail() PHP 脚本的 jQuery AJAX 表单发送电子邮件,但来自 HTML 表单的 POST 数据未定义

使用 AJAX 提交时发送电子邮件不起作用

php发送邮件

在循环中使用 php mail() 函数发送 +-200 封电子邮件

如果从 php mail() 函数发送的电子邮件返回,它在 linux 中的位置?