Ajax表单提交错误

时间:2016-03-07 14:21:18

标签: jquery ajax

我使用以下代码通过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();
});

2 个答案:

答案 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}}