我们有一个API,它使用适当的HTTP状态代码进行错误,并使用JSON编码的响应和适当的Content-Type标头进行响应。我的情况是,当遇到HTTP错误状态时,jQuery.ajax()会触发错误回调,而不是成功回调,所以即使我们有一个可理解的JSON响应,我们也不得不诉诸于此:
$.ajax({
// ...
success: function(response) {
if (response.success) {
console.log('Success!');
console.log(response.data);
} else {
console.log('Failure!');
console.log(response.error);
}
},error: function(xhr,status,text) {
var response = $.parseJSON(xhr.responseText);
console.log('Failure!');
if (response) {
console.log(response.error);
} else {
// This would mean an invalid response from the server - maybe the site went down or whatever...
}
}
});
有没有比在每个jQuery.ajax()调用两个地方做相同的错误处理更好的范例?这不是很干,我相信在这些情况下,我刚刚错过了一些好的错误处理方法。