我已经使用AJAX一段时间了,我可以通过ajax提交表单,我可以通过ajax重新加载Div,通过ajax添加,编辑和删除。我现在的目标是更好地理解如何显示错误消息。
我认为是错误消息 假设表单要求提交名称,当用户未输入其姓名并点击提交按钮时,应显示错误消息,要求用户输入所需信息。
目前我在AJAX的success
部分管理这个,这是正确的方法吗?如果是,那么什么是AJAX error: function
?用户未输入所需信息的错误消息是否应通过error: function
显示?
这就是我AJAX
调用的样子,我想改进它。
$.ajax({
url: 'demo.php', //your server side script
data: $("#form").serialize(),
type: 'POST',
beforeSend: function () {
$('#dvloader').show();
},
success: function (data) {
$('#dvloader').hide();
$("#message").html(data);
}
});
我也想知道隐藏加载gif是否也应该在success
旁边,虽然它有效,但我想知道这是否是正确的方法。
我将非常感谢任何人对此的反馈。
答案 0 :(得分:1)
目前我在AJAX的成功部分管理这个,这是正确的方法吗?
这有点主观。
如果是,那么什么是AJAX错误:函数用于?
这主要是针对HTTP错误(例如,当服务器端代码没有按照您期望的方式工作时),但是如果(例如)JSON响应格式错误且无法解析,它也会触发。
如果通过表单提交不适当的数据,您的服务器端代码应抛出HTTP错误代码(在这种情况下错误处理程序将触发),但是standard status codes似乎没有适合于此,并不是处理问题的常用方法。
答案 1 :(得分:1)
error
是在ajax调用失败的情况下调用的函数(如未找到的url)。它与您想要的自定义错误验证无关。
在您的情况下,您希望在PHP代码中进行验证(即是否提交了名称?)。并返回true(或false) - 或实际上你想要的任何东西,重点是定义它是否正常。
然后,在success
回调函数中,显示(或不显示)错误消息,具体取决于返回的值。
但是,如果您的控件就像在此字段中有值一样简单吗?您可能不希望使用ajax调用,但javascript / jquery验证之前< / strong>提交。
答案 2 :(得分:1)
beforeSend:
- 在发送ajax请求之前
success:
- 当请求成功并返回某些内容时
error:
- 当ajax请求失败时(技术上)
对于超时错误,您使用error:
回调:
$.ajax({
...
timeout: 1000,
error: function(jqXHR, status, error) {
if(status==="timeout") {
//do something on timeout
}
}
});
对于用户定义的错误(即来自PHP),您使用success:
回调:
$.ajax({
...
success: function (data, status, jqXHR) {
if (data == something)
// error
}
});
答案 3 :(得分:0)
作为一种常用方法,许多开发人员将前端错误和后端错误分开:
前端错误缺少输入文字,或双击submit
按钮。这种错误通常在beforeSend:
函数中进行管理,因为发送缺少数据的AJAX请求会浪费时间。您可以使用here中所述的简单return false
语句停止请求。很多人也使用效果很好的JQuery validation plugin。
作为后端错误,有些值未经您的服务器端语言(PHP或其他语言)验证,或者更多技术问题,如内部服务器错误或超时。在这种情况下,您可以使用error:
函数以及@Forien所解释的函数,将errorStatus值分开,以便为用户提供更可读的反馈。
希望这有帮助