在jQuery中使用$.ajax时,如何在加载的文档中故意抛出错误?

在jQuery中使用$.ajax时,如何在加载的文档中故意抛出错误?,jquery,ajax,verification,Jquery,Ajax,Verification,在我的文档中,我有以下脚本: $.ajax({ type:"POST",url:"ajax.php",data:data, success: function() { //onsuccess }, error: function() { //onerror } }); 如何在文档ajax.php中故意抛出错误?仅仅抛出一个400 HTTP状态码或其他什么就足够了吗?(如果是,400是正确的吗?) 我之所以这样问是因为我想用它

在我的文档中,我有以下脚本:

$.ajax({ type:"POST",url:"ajax.php",data:data,
    success: function() { 
        //onsuccess
    },
    error: function() { 
        //onerror
    }
}); 
如何在文档
ajax.php
中故意抛出错误?仅仅抛出一个400 HTTP状态码或其他什么就足够了吗?(如果是,400是正确的吗?)

我之所以这样问是因为我想用它向服务器提交表单,如果字段填写不正确,我想通过
$.ajax
中的错误参数提醒用户。我知道我可以首先使用javascript来完成这项工作,但我希望我可以这样做(因此我不必编写两次验证)当然,这样做,我无法将不同的字段与其他字段分开。

根据我想使用它的目的,我是否可以抛出一个“自定义错误”,因此,如果字段
名称
没有正确填写,它将返回字段的名称(即
名称
)。这样做是否足够:

在ajax.php中:

if (isFilledOutProperly($name) == false) {
    echo "name";
}
else {
    echo "success";
}
以及:


我可能走错了方向,但如果有人对我如何做到这一点有更好的建议,请告诉我。谢谢

调用
$.ajax()
error
子句并不适用于您所指的环境<代码>错误涵盖了HTTP错误等情况。在这种情况下,验证失败并不是真正的错误。您最好在
success
回调中使用服务器返回的适当数据指示这些对象

如果您查看以下内容:

如果请求 失败。函数传递三次 参数:XMLHttpRequest对象, 描述错误类型的字符串 这发生了,一个可选的 异常对象(如果发生)。 第二个参数的可能值 参数(除null外)为“超时”, “错误”、“未修改”和 “parsererror”。这是一个很好的例子

注意:它讨论的错误条件是解析错误、超时、错误(HTTP)和未修改(这是另一个HTTP响应)


从技术上讲,您的请求成功,但验证失败,这本身并不是一个错误。

根据REST原则,使用HTTP 200响应POST请求意味着成功创建了资源。您可以使用HTTP 400进行响应,还可以以text/html/json/xml格式提供有关错误的详细信息。我知道,但正如我所问的:我可以通过强制执行html错误来故意抛出
$.ajax()
的“错误”部分?是的,如果您使用HTTP 2xx以外的格式进行响应,则会调用“错误”部分。
success: function(data) { 
    if (data == 'name') {
        //error
    }
            else {
        //success
    }
},
error(XMLHttpRequest, textStatus, errorThrown)Function