AJAX 客户端调用错误的一般处理
General handling of AJAX call error on client side
我们有一个使用 PrimeFaces 的 JSF 2.2 应用程序。
现在,当发生错误时,我会检查 AJAX 请求并提供部分响应(如 BalusC's anwer to this question 所示)。
但是,如果没有服务器再处理错误,例如由于连接丢失?目前没有任何反应,让用户感到困惑。
我在 that question 中找到了一个有用的提示,但我想以一般方式解决这个问题,以便所有失败的 AJAX 调用都尝试重定向到起始页- 然后可能会收到浏览器连接错误信息。
对于标准 JSF ajax,使用 jsf.ajax.addOnError()
设置默认错误处理程序。例如
jsf.ajax.addOnError(function(data) {
alert(data.responseText);
});
另请参阅 JSF 2.2 spec 的第 13.3.6.2 章。您可以在 JSF 规范的 table 14-4 中找到 data
对象的所有属性。
对于 PrimeFaces 4+,在 jQuery 中挂接 pfAjaxError
事件(在 4 之前,只需使用 ajaxError
)。例如
$(document).on("pfAjaxError", function(event, xhr, options) {
alert(xhr.responseText);
});
只需对其进行相应的自定义,即可在顶部显示一些 div。
我们有一个使用 PrimeFaces 的 JSF 2.2 应用程序。
现在,当发生错误时,我会检查 AJAX 请求并提供部分响应(如 BalusC's anwer to this question 所示)。
但是,如果没有服务器再处理错误,例如由于连接丢失?目前没有任何反应,让用户感到困惑。
我在 that question 中找到了一个有用的提示,但我想以一般方式解决这个问题,以便所有失败的 AJAX 调用都尝试重定向到起始页- 然后可能会收到浏览器连接错误信息。
对于标准 JSF ajax,使用 jsf.ajax.addOnError()
设置默认错误处理程序。例如
jsf.ajax.addOnError(function(data) {
alert(data.responseText);
});
另请参阅 JSF 2.2 spec 的第 13.3.6.2 章。您可以在 JSF 规范的 table 14-4 中找到 data
对象的所有属性。
对于 PrimeFaces 4+,在 jQuery 中挂接 pfAjaxError
事件(在 4 之前,只需使用 ajaxError
)。例如
$(document).on("pfAjaxError", function(event, xhr, options) {
alert(xhr.responseText);
});
只需对其进行相应的自定义,即可在顶部显示一些 div。