在我的脚本中,我通过使用documentation中提到的statusCode
对象来处理错误4XX或错误5XX。我做的ajax调用的一个玩具示例是:
$("someform").on("submit",function(e){
e.preventDefault();
var self=this; //To avoid Confusion using this
var url=$(self).attr('action');
$.ajax({
'method': "POST",
'url': url,
'data': $(self).serialize(),
'statusCode': {
400: function(data,textStatus,jqXHR) {
console.log(data.something);
}
}
})
})
我的服务器端代码返回以下响应:
{
'something':"Hello, you did it wrong"
}
但是console.log
响应
未确认
如何获取正确的值?
答案 0 :(得分:0)
发生错误400时,data.responseJSON
中的响应导致此代码:
$("someform").on("submit",function(e){
e.preventDefault();
var self=this; //To avoid Confusion using this
var url=$(self).attr('action');
$.ajax({
'method': "POST",
'url': url,
'data': $(self).serialize(),
'statusCode': {
400: function(data,textStatus,jqXHR) {
data=data.responseJSON;
console.log(data.something);
}
}
})
})
根据经验,当您处理错误5xx或错误4xx并期望json响应时,只需将数据设置为值data.responseJSON
,就可以了。