jQuery基础:Ajax错误处理
在开发的过程有时会遇到网络或数据发生错误的可能,需要适当地记录或报告这些错误。但是 $.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()处理程序时,可以根据下表解读错误。