我们有一个使用PrimeFaces的JSF 2.2应用程序。
现在,当发生错误时,我会检查一个AJAX请求并发送部分响应(如BalusC's anwer to this question所示)。
但是,如果没有服务器可以处理错误,例如由于连接丢失?目前,没有任何反应,让用户感到困惑。
我在that question中找到了一个提示,但是我想以一般的方式解决这个问题,以便所有失败的AJAX调用都尝试重定向到起始页 - 然后可能会收到浏览器连接错误消息。
答案 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。