我们有一个 API,它使用正确的 HTTP 状态代码来处理错误,并使用 JSON 编码的响应和适当的Content-Type
标头进行响应。我的情况是当它遇到 HTTP 错误状态时jQuery.ajax()
触发回调,而不是回调,所以即使我们有一个可理解的 JSON 响应,我们也不得不求助于这样的事情:error
success
$.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()
有没有比在每次调用的两个位置进行相同的错误处理更好的范例?它不是很干燥,而且我确信在这些情况下我错过了一些关于良好错误处理实践的东西。