在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