在我的文档中,我有这个脚本:
$.ajax({ type:"POST",url:"ajax.php",data:data,
success: function() {
//onsuccess
},
error: function() {
//onerror
}
});
我如何在文档ajax.php
中故意抛出错误?仅仅抛出一个400 HTTP状态代码或其他东西就足够了吗? (如果是,那么正确的是400吗?)
为什么我要问的是我想用它来向服务器提交表单,如果字段没有正确填写,我想通过$.ajax
中的错误参数提醒用户。我知道我可以首先使用javascript做这个,但我希望我能这样做(所以我不必写两次验证)。 但当然,通过这种方式,我无法将不同的字段与其他字段分开。
根据我想要使用的内容,可以以某种方式抛出“自定义错误”,因此如果字段name
未正确填写,则会返回字段的名称(即name
)。做这样的事情就足够了:
在ajax.php中:
if (isFilledOutProperly($name) == false) {
echo "name";
}
else {
echo "success";
}
并且:
success: function(data) {
if (data == 'name') {
//error
}
else {
//success
}
},
我可能在这里走错了路,但如果有人对如何做到这一点有更好的建议,请告诉我。谢谢!
答案 0 :(得分:12)
error
来电的$.ajax()
条款并非真正针对您所指的情况。 error
涵盖了HTTP错误的案例。在这种情况下,验证失败不是真正的错误。最好在success
回调中指出那些从服务器返回的适当数据。
如果你看documentation:
error(XMLHttpRequest, textStatus, errorThrown)Function
请求时要调用的函数 失败。该功能通过三次 arguments:XMLHttpRequest对象, 描述错误类型的字符串 发生了并且是可选的 异常对象,如果发生了一个。 第二个可能的值 参数(除了null)是“超时”, “错误”,“未修改”和 “parsererror”。这是Ajax Event。
注意:它所讨论的错误条件是解析错误,超时,错误(HTTP)和未修改(这是另一个HTTP响应)。
从技术上讲,您的请求成功但验证失败,这本身并不是错误。