客户端AJAX调用错误的一般处理

时间:2015-02-16 09:24:44

标签: ajax jsf-2 primefaces error-handling

我们有一个使用PrimeFaces的JSF 2.2应用程序。

现在,当发生错误时,我会检查一个AJAX请求并发送部分响应(如BalusC's anwer to this question所示)。

但是,如果没有服务器可以处理错误,例如由于连接丢失?目前,没有任何反应,让用户感到困惑。

我在that question中找到了一个提示,但是我想以一般的方式解决这个问题,以便所有失败的AJAX调用都尝试重定向到起始页 - 然后可能会收到浏览器连接错误消息。

1 个答案:

答案 0 :(得分:4)

对于标准JSF ajax,使用jsf.ajax.addOnError()设置默认错误处理程序。 E.g。

jsf.ajax.addOnError(function(data) {
    alert(data.responseText);
});

另见JSF 2.2 spec的第13.3.6.2章。您可以在JSF规范表14-4中找到data对象的所有属性。

对于PrimeFaces 4+,在jQuery中挂钩pfAjaxError事件(在4之前,只需使用ajaxError)。 E.g。

$(document).on("pfAjaxError", function(event, xhr, options) {
    alert(xhr.responseText);
});

只需相应地自定义它以在顶部显示一些div。