11.3.6 处理错误
遗憾的是,事情不会总是像计划的那样发展。当使用Ajax和一个Web服务器会话的时候,事情可能会出错。Web服务器可能在某一个时刻宕机了,或者访问者的互联网连接临时断掉。如果发生这种情况,.get()和.post()函数将会失效,而不会让访问者知情。尽管这种类型的问题很少见,但最好还是做好准备,并且让访问者知道某些地方临时出现错误,以帮助他们搞清楚怎么做(例如,重新载入页面、再次尝试,或者稍后再来)。
要对一个错误给出响应,直接在.get()或.post()函数的末尾添加一个.error()函数。基本的结构如下所示:
$.get(url, data, successFunction).error(errorFunction);
例如,可以将11.3.5节的第4行代码重新编写如下:
$.get('rate.php',querystring, processResponse).error(errorResponse);
然后,创建一个名为errorResponse的新函数,它通知访问者这里有一个问题。例如:
function errorResponse(){
var errorMsg="Your vote could not be processed right now.";
errorMsg+="Please try again later.";
$('#message').html(errorMsg);
}
在这个例子中,只有当服务器或者服务器的连接中存在某种类型的错误的时候,函数errorResponse才会运行。