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才会运行。