Javascript 未发送电子邮件时显示错误

Javascript 未发送电子邮件时显示错误,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的示例表单,其中beforeSend函数显示正在发送的消息,发送后另一个函数称为.done(函数(数据)显示已发送的消息。我只想使用另一个未发送消息的函数来显示消息错误,消息未发送 您可以使用FailAPI来处理错误,如下所示 此外,在$.ajax({constObj})中,您可以使用success和error等API来处理相同的问题 提及 //二, 您可以使用FailAPI来处理错误,如下所示 此外,在$.ajax({constObj})中,您可以使用success和error等AP

我有下面的示例表单,其中
beforeSend
函数显示正在发送的消息,发送后另一个函数称为
.done(函数(数据)
显示已发送的消息。我只想使用另一个未发送消息的函数来显示消息错误,消息未发送

  • 您可以使用FailAPI来处理错误,如下所示
  • 此外,在$.ajax({constObj})中,您可以使用success和error等API来处理相同的问题
  • 提及

    //二,

  • 您可以使用FailAPI来处理错误,如下所示
  • 此外,在$.ajax({constObj})中,您可以使用success和error等API来处理相同的问题
  • 提及

    //二,


    不要使用
    .done
    而是使用ajax选项
    success
    error
    。发送电子邮件失败时在服务器上抛出错误

    $.ajax({
        success: function () {
            // message sent!
        },
        error: function () {
            // message sent failed!
        }
    });
    
    在服务器端:

    if ($this->sendMessage()) {
        echo "ok";
    } else {
        throw new Exception('Email failed to send.', 500);
    }
    


    您无法判断用户是否真的收到了电子邮件(我想可能有一些复杂的方法来解决)。

    而不是
    。完成
    使用ajax选项
    success
    error
    。发送电子邮件失败时在服务器上抛出错误

    $.ajax({
        success: function () {
            // message sent!
        },
        error: function () {
            // message sent failed!
        }
    });
    
    在服务器端:

    if ($this->sendMessage()) {
        echo "ok";
    } else {
        throw new Exception('Email failed to send.', 500);
    }
    

    您无法判断用户是否真的收到了电子邮件(我想有一些复杂的方法可以解决)。

    您使用done(),它是在成功的ajax请求后执行的(通常返回HTTP 200)。如果您读取,则有fail(),它是在失败的ajax请求后执行的

    它还取决于sendmail.php的输出

    $.ajax({
        beforeSend: function() {
            $('msg').text('Sending email...');
        }
    }).done(function() {
        $('#msg').text('Success!');
    }).fail(function() {
        $('#msg').text('Failed!');
    });
    
    但是,如果PHP在出错时也返回HTTP 200,则可以执行以下操作

    PHP:

    jQuery:

    $.ajax({
        beforeSend: function() {
            $('msg').text('Sending email...');
        }
    }).done(function(data) {
        if (data.status === true) {
            $('#msg').text('Success!');
        } else {
            $('#msg').text('Failed: ' + data.error);
        }
    });
    
    使用done(),它是在成功的ajax请求(通常返回HTTP 200)之后执行的。如果读取,则会出现fail(),它是在失败的ajax请求之后执行的

    它还取决于sendmail.php的输出

    $.ajax({
        beforeSend: function() {
            $('msg').text('Sending email...');
        }
    }).done(function() {
        $('#msg').text('Success!');
    }).fail(function() {
        $('#msg').text('Failed!');
    });
    
    但是,如果PHP在出错时也返回HTTP 200,则可以执行以下操作

    PHP:

    jQuery:

    $.ajax({
        beforeSend: function() {
            $('msg').text('Sending email...');
        }
    }).done(function(data) {
        if (data.status === true) {
            $('#msg').text('Success!');
        } else {
            $('#msg').text('Failed: ' + data.error);
        }
    });
    

    尝试在发送电子邮件之前升起标志(False)并升起标志(True)如果消息成功发送并为相应消息签入标志它不是sms它是email尝试在发送电子邮件之前升起标志(False)并升起标志(True)如果消息发送成功并为相应的消息签入完成标志,则该消息不是sms,而是email我认为您的jquery代码错误,我尝试了您的代码,但收到了错误的电子邮件。在为Every加载PreforeSend函数之前,它不是一个完整的jquery代码,只是一个如何使用done()和fail()的示例承诺方法我认为你的jquery代码是错误的,我尝试了你的代码,但收到了错误的电子邮件。在为Every加载PreforeSend函数之前,它不是一个完整的jquery代码,只是一个如何使用done()和fail()的示例promise Methods当我添加fail函数时,我的整个联系人表单都不起作用。我需要包含任何库吗?添加fail()函数时出现了什么错误。无论如何,使用方法2更可取。您使用的是什么版本的jquery?另外,请尝试
    error(function(){})
    而不是
    fail(function(){})
    我尝试了3.1.1和1.12.4,但在控制台中尝试代码时出现错误。错误(函数()也不起作用当我添加fail函数时,我的整个联系人表单都不起作用。我需要包括任何库吗?添加fail()时出现了什么错误函数。无论如何,使用方法2更可取。您使用的是什么版本的jquery?另外,请尝试
    error(function(){})
    而不是
    fail(function(){})
    我尝试了3.1.1和1.12.4,但在控制台中尝试代码时出现了错误。error(function()也不起作用