ajax - 在 Ajax 请求期间处理错误的规范方法是什么?

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

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

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

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

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

    最佳答案

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

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

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

    关于ajax - 在 Ajax 请求期间处理错误的规范方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137660/

    相关文章:

    javascript - 使用 AJAX 重新加载 PHP FORM

    javascript - Jquery 在 Ajax 生成的内容中使用时为 Null

    ios - Xcode swift - 无法使用类型为 'pathForResource' 的参数列表调用 '(String!)'

    jsf - 为什么 <f :validateBean/> won't work?

    jsf-2 - 如何从 URL 中隐藏 .xhtml 扩展名

    jsf-2 - 引用JSF根据迭代索引动态生成的id

    java - 如何链接 Wicket 下拉列表事件?

    javascript - 通过 PHP 与 AJAX 加载页面

    error-handling - 在vb6-Closed中调用Err.Raise时,应用程序定义或对象定义的错误

    windows - Taskkill退出代码: 255