jQuery AJAX错误处理(HTTP状态代码)

前端之家收集整理的这篇文章主要介绍了jQuery AJAX错误处理(HTTP状态代码)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个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()调用两个地方做相同的错误处理更好的范例?这不是很干,我相信在这些情况下,我刚刚错过了一些好的错误处理方法

解决方法

查看 jQuery.ajaxError()

它捕获全局Ajax错误,您可以通过多种方式处理:

if (jqXHR.status == 500) {
  // Server side error
} else if (jqXHR.status == 404) {
  // Not found
} else if {
    ...

或者,您可以自己创建一个全局错误处理程序对象,并选择是否调用它:

function handleAjaxError(jqXHR,textStatus,errorThrown) {
    // do something
}

$.ajax({
    ...
    success: function() { ... },error: handleAjaxError
});

猜你在找的jQuery相关文章