【问题标题】:Handling ajax errors with jsf.ajax.addOnError使用 jsf.ajax.addOnError 处理 ajax 错误
【发布时间】:2014-03-23 02:24:56
【问题描述】:

jsf.ajax.addOnError 如何实际捕获错误? 我没有找到任何关于它的机制的信息。我只发现它是一个错误监听器。

【问题讨论】:

  • 为什么错误监听器要捕获错误?它到底是什么,您要解决的问题,或者您要实现的功能需求?这可能比提出反问问题产生更好的答案。

标签: ajax jsf error-handling


【解决方案1】:

无论您在哪里发现jsf.ajax.addOnError 是错误的声明-监听器,该来源都是错误的。 addOnError 函数添加一个错误监听器(即,一个您自己定义的函数,只要 JSF 框架遇到错误情况就会调用它)。

这是直接出自JSF-2.2 spec, 13.3.6.2

jsf.ajax.addOnError 函数接受一个 JavaScript 函数参数,该参数将是 在任何 Ajax 请求/响应周期中发生错误时通知。 [P1-start-event] 实现必须确保必须按照第 14-5 节“错误”中列出的错误调用注册的 JavaScript 函数。[P1-end]

因此,“错误”表定义了您的函数将在哪些条件下被调用。他们在这里:

  • httpError:请求状态==null 或 request.status==undefined 或 request.status=300
  • serverError:Ajax 响应包含“错误”元素。
  • ma​​lformedXML:Ajax 响应格式不正确。
  • emptyResponse:服务器没有 Ajax 响应。

JSF 实现基本上触发一个 Ajax 请求并定义在响应到达时由浏览器调用的内部处理程序。然后,他们需要检查响应,如果满足上述条件之一,他们会查找您是否注册了任何要调用的函数并在需要时执行它们(他们做的更多,但这就是这里有问题的部分)。

【讨论】:

  • 根据OP的previous question,相信他都已经知道了。
  • @BalusC 好吧,留下“添加错误侦听器”位,即指出问题的有缺陷的前提。这里没有什么魔法可以解释(一次!)
  • 是的,你答对了。但我相信这无助于他解决他的实际问题/要求。我相信他只是问错了问题。
  • @BalusC 太糟糕了,我今天已经用完了我的水晶球津贴;-) 但是,是的,我主要希望其他人觉得它有用并且可以省去查看规范文档的时间。跨度>
猜你喜欢
  • 2015-09-26
  • 2013-08-15
  • 1970-01-01
  • 2013-06-26
  • 2018-03-25
  • 2013-05-19
  • 2012-02-25
  • 2013-08-29
  • 2011-03-25
相关资源
最近更新 更多