Php 为什么我的Ajax从未完成?
我想用PHP发送邮件,但是数据是在Jquery中,所以我使用Ajax 邮件已发送,但我收到了警报(“失败”),我不知道为什么^^ jqXHR.responseText为空且textStatus=“error” 我的表格中的所有数据如下所示:Php 为什么我的Ajax从未完成?,php,jquery,ajax,Php,Jquery,Ajax,我想用PHP发送邮件,但是数据是在Jquery中,所以我使用Ajax 邮件已发送,但我收到了警报(“失败”),我不知道为什么^^ jqXHR.responseText为空且textStatus=“error” 我的表格中的所有数据如下所示: // Récupération de TOUS les élements DES formulaires var lesChamps = $(".frm_etape input[type='text'], .frm_etape input[checked],
// 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']);
邮件已正确发送,但始终具有警报(“失败”)!而responseText是一个空字符串
编辑:在我写的fail()中:
console.log(errorThrown.stack);
这是结果:{readyState:0,getResponseHeader:function,getAllResponseHeaders:function,setRequestHeader:function,OverrideMetype:function,…}
我找到了解决办法!只需添加一个e.preventDefault();在我的代码之前
textStatus
的值是多少?@ridick关于请求,您的控制台怎么说?因为什么而失败?正在向端点发送哪些数据?端点是否正确且未被阻止?alert(textStatus)=error如果查看失败处理程序中的errorThrown
变量,以及浏览器开发工具的“网络”选项卡,并且向我们展示了PHP的一部分,可能会有所帮助。我无法使用控制台,因为警报刚发出,页面就被重新加载了^^^textStatus的值是多少?@ridtick您的控制台对请求说了什么?因为什么而失败?正在向端点发送哪些数据?端点是否正确且未被阻止?alert(textStatus)=error如果查看失败处理程序中的errorThrown
变量,以及浏览器开发工具的“网络”选项卡,并且向我们展示了PHP的一部分,可能会有所帮助。我无法使用控制台,因为在发出警报后,页面会重新加载^^