学而实习之 不亦乐乎

jQuery基础:Ajax错误处理

2019-02-13 10:04:04

在开发的过程有时会遇到网络或数据发生错误的可能,需要适当地记录或报告这些错误。但是 $.get()和.load()等快捷的Ajax方法并没有提供错误回调参数,因此我们需要其他的解决方案。

如使用全局的.ajaxError()方法和利用jQuery的延迟对象系统。我们知道可以给.load()之外的Ajax方法连缀.done()、.always()和.fail()方法,并通过它们添加相应的回调函数即可。
代码如下:
我们使用一个不存在的地址(z.php),然后用.fail()方法。

$(document).ready(function() {
    $('#letter-a a').click(function(event) {
    event.preventDefault();
    var requestData = {term: $(this).text()};
    $.get('z.php', requestData, function(data) {
        $('#dictionary').html(data);
        }).fail(function(jqXHR) {
        $('#dictionary')
        .html('An error occurred: ' + jqXHR.status)
        .append(jqXHR.responseText);
        });
    });
});

根据服务器的配置不同,jqXHR.responseText的内容可能会有所不同。
.status 属性中包含着服务器返回的状态码。这些代码由HTTP规范定义,当触发.fail()处理程序时,可以根据下表解读错误。