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