14

在我的文档中,我有这个脚本:

$.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
    }
},

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

4

1 回答 1

12

error通话条款$.ajax()并不真正适用于您所指的情况。error涵盖例如 HTTP 错误的情况。在这种情况下,验证失败并不是真正的错误。您最好success使用从服务器返回的适当数据来指示回调中的那些。

如果您查看文档

error(XMLHttpRequest, textStatus, errorThrown)Function

请求失败时调用的函数。该函数被传递三个参数:XMLHttpRequest 对象,一个描述发生的错误类型的字符串和一个可选的异常对象(如果发生了)。第二个参数(除了 null)的可能值是“timeout”、“error”、“notmodified”和“parsererror”。这是一个Ajax 事件

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

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

于 2010-02-06T11:50:19.307 回答