为什么我的Ajax永远不会完成?

时间:2016-06-17 09:14:10

标签: php jquery ajax

我想用PHP发送邮件,但数据是在Jquery中,所以我使用Ajax。

邮件已发送,但我有警报("失败"),我不知道为什么^^ jqXHR.responseText为空,textStatus ="错误" ...

我得到了我的表格的所有数据:

// Récupération de TOUS les élements DES formulaires
var lesChamps = $(".frm_etape input[type='text'], .frm_etape input[checked], .frm_etape input[type='checkbox'], .frm_etape select, .frm_etape textarea");

// Message qui contiendra les données que l'on passera au script PHP
var message = "";

// On empêche les submit de s'afficher dans le mail
$(lesChamps).attr("type", "submit").replaceWith("\n\n");

// Parcours des champs des formulaires
$(lesChamps).each(function(){
    message += $(this).attr("name") + " : " + $(this).val() + "\n\n";
});

        /* Requête Ajax */
         $.ajax({
                  method: "POST",
                  url: "traitement.php",
                  data: { message }
         })

            /* Si succès */
            .done(function() {
                $(".succes").animate().css("display", "block");
                alert("Ok");
                // On attends 3,5 secondes puis on rafraichi la page
                //setTimeout(function(){location.reload();}, 3500);
            })

            /* Si échec */
            .fail(function(jqXHR, textStatus, errorThrown) {
              alert(jqXHR.responseText);
              alert("FAIL");
            });

这是traitement.php:

mail("r.v@a.com", 'Nouveau devis', $_POST['message']);

邮件已正确发送,但始终有警报(" FAIL")!而responseText是一个空字符串

编辑:在失败()中我写道:

console.log(errorThrown.stack);

这就是结果:{readyState:0,getResponseHeader:function,getAllResponseHeaders:function,setRequestHeader:function,overrideMimeType:function,...}

我找到了解决方案!只需添加一个e.preventDefault();在我的代码之前!

0 个答案:

没有答案