我使用以下代码通过ajax发送电子邮件。问题是即使没有发送电子邮件,例如本地主机或没有互联网连接,脚本仍将返回成功命令。请告诉我应该对代码进行哪些修改,以便在遇到错误时进行检测。
$('#send_button').click(function(e) {
$("#sending").removeClass("hidden_div");//just to know that we have some data
alerts = '';
if($("input[name=names]").val() == ''){
alerts += "1";
$("#error_name").removeClass("hidden_div");
}
if(alerts != ''){
$("#sending").addClass("hidden_div");
} else {
$.ajax({
url:'index.php',
type:'POST',
data:$("#form").serialize(),
cache: false,
success: function(data){
show_ok();
},
error: function(){
$("#msg_not_sent").removeClass("hidden_div");
$( "#msg_not_sent" ).empty().append( "An error has occurred. Kindly try again." );
}
}); }
e.preventDefault();
});
答案 0 :(得分:0)
我相信如果您调用的代码没有像jQuery所期望的那样出错,或者您没有使用匹配的返回数据类型,那么就会发生这种情况。尽管如此,还是有办法解决这个问题。
complete: function (data) {
if (data.status == "200") {
}
答案 1 :(得分:0)
success
应包含$success = false;
if(somethingOk){
$success = true;
}
echo json_encode(array(
'success' => $success
));
属性。
由于您的电话 很可能会成功,因此您还需要考虑行动的结果。
PHP:
dataType: 'json', // make sure you get a json
success: function(data){
if (data.success){
show_ok();
} else {
alert("error");
}
},
JS:
{{1}}