当用户向我的API提交无效数据时(通常是通过Javascript + JSON),我想知道我应该回复哪个HTTP response code。
我是否应该返回带有错误的HTTP 200响应 - 或者我的服务器是否应该响应400或500错误,因为由于某些错误数据请求实际上未通过验证?
似乎400错误是要走的路,因为“4xx类状态代码适用于客户端似乎错误的情况” - wikipedia
但是,要记住的一件事是大多数人使用像jQuery这样的框架,当AJAX请求响应除200以外的任何状态代码时,需要您指定备用回调。
答案 0 :(得分:8)
400 Bad Request由于语法格式错误,服务器无法理解该请求。客户不应该在没有修改的情况下重复请求。
在jquery ajax调用中使用statusCode:
<html>
<head>
<title>jquery testing</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"/>"></script>
<script language="javascript">
$(document).ready(
function(){
$('#linkClick').click(
function(){
$.ajax({
url: 'a.html',
data: {},
type: 'get',
dataType: 'json',
statusCode: {
404:function() { alert("404"); },
200:function() { alert("200"); },
201:function() { alert("201"); },
202:function() { alert("202"); }
},
success: function(data) {
alert( "Status: " + data);
}
});
});
}
);
</script>
</head>
<body>
<a href="#" id="linkClick">click</a>
</body>
</html>