gpt4 book ai didi

即使请求成功,也会调用 jQuery ajax 错误函数

转载 作者:行者123 更新时间:2023-12-03 23:04:41 25 4
gpt4 key购买 nike

我正在制作我的 WordPress 网站联系表单,我希望在不刷新页面的情况下发送该表单。我已经设法让它工作,它发送邮件,但后来我想如果不成功怎么办,并添加了错误函数。现在,即使它成功发送了邮件,它每次都会调用错误函数。这是它的代码:

    $("#Submit").click(function () {
var dataString = $('#knamecontactform').serialize();
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "http://example.com/form.php",
data: dataString,
dataType: "text",
error: function () {
$('#messagenotsent').fadeIn(400);
},
success: function () {
$('#knamecontactform')[0].reset();
$('#messagesent').fadeIn(400);
}


});
return false;

});

还有submitform.php:

<?php
$to = "mail@gmail.com";
$subject = "Message";
$message =
$_POST['Nimi'] . "\n" .
$_POST['Puhelin'] . "\n" .
$_POST['Sposti'] . "\n" .
$_POST['Tiedot'];
$from = $_POST['Nimi'];
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo 'Mail sent.';
?>

最佳答案

除了上面提到的评论者(您最初的问题是跨域 AJAX)之外,您可能还需要考虑使用较新的(在版本 1.5 中引入)jQuery 延迟方式来处理 AJAX 事件,因为 error: 和 success: 函数将在 jQuery 的 future 版本中将被弃用。除了更加面向 future 之外,我还认为它为您的代码提供了很好的可读性。

使用 .done 代替成功,使用 .fail 代替错误。请参阅下面的示例。

$.ajax({
//all your regular ajax setup stuff except no success: or error:
})
.done( function (data, status) {
//do whatever you want with the return data upon successful return
})
.fail( function (data, status) {
//do whatever you want with the return data upon error
});

有关更多信息,请查看jQuery docs on deferred objects .

关于即使请求成功,也会调用 jQuery ajax 错误函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com