【问题标题】:What is the canonical way to handle errors during Ajax-requests?在 Ajax 请求期间处理错误的规范方法是什么?
【发布时间】:2011-10-31 13:07:54
【问题描述】:

对于普通请求,我们可以在web.xml 中简单地注册一个<error-page>。但是,这不适用于 Ajax 请求。默认情况下,Ajax 请求期间的错误将导致浏览器中出现一个显示异常的小弹出窗口。

我正在努力解决的主要示例是以统一的方式处理ViewExpiredException。对于标准请求,我重定向到说明用户未登录并提供登录页面链接的页面。我想对 Ajax 请求做同样的事情。似乎有几种方法:

  1. 我可以编写一个 javascript 函数来处理客户端的错误并重定向到错误页面。然后我必须使用onerror-attribute 添加这个函数所有页面上的每个<f:ajax>-tag。有没有办法告诉 JSF 我想将此 javascript-function 作为所有 <f:ajax>-tags 的默认错误处理程序?
  2. 我可以使用自定义异常处理程序,如this blog 中所述。这似乎做了我想要的,但我想知道它是否是矫枉过正。有没有更简单的解决方案?

所以我的问题是,这应该如何解决?应该使用我列出的哪些方法?还有其他我不知道的方法吗?

【问题讨论】:

    标签: ajax error-handling jsf-2 glassfish-3 mojarra


    【解决方案1】:

    您可以使用jsf.ajax.addOnError() 设置默认错误处理程序。例如

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 2014-03-28
      • 2012-02-21
      • 2014-09-23
      • 2018-10-10
      • 1970-01-01
      相关资源
      最近更新 更多