9

我目前正在尝试 ajax 功能,我很好奇如何显示在执行 ajax 时出现的错误消息?例如,我有一个 primefaces 按钮:

<p:commandButton value="Refresh" update="debugPanel messages" 
   action="#{checkbocLabBean.submit}"/>

测试该按钮时,似乎没有任何反应,直到我检查服务器日志,出现异常。事实证明我有一个错字。应该是#{checkboxLabBean.submit}。

我现在唯一能想到的就是禁用 ajax,在我的情况下添加 ajax="false",错误就会出现。

在使用 ajax 请求时,是否有其他方法可以在开发阶段将错误直接显示到浏览器中?

4

1 回答 1

6

Ajax 请求是异步发生的。默认情况下,它们不会影响整个文档。PrimeFaces 的 ajax 请求期间抛出的异常被委托给<p:ajaxStatus>. 你可以在<facet name="error">.

<p:ajaxStatus>
    <f:facet name="start">Loading...</f:facet>
    <f:facet name="success"><h:outputText value="" /></f:facet>
    <f:facet name="error">An error has occurred!</f:facet>
</p:ajaxStatus>

如果您想用错误页面替换当前文档 - 这是一个非常合理的选择 - 那么很高兴知道 PrimeFaces 在幕后使用 jQuery,并且您可以按如下方式配置 jQuery 来执行此操作:

<script>
    jQuery.ajaxSetup({
        error: handleXhrError
    });

    function handleXhrError(xhr) {
        document.open();
        document.write(xhr.responseText);
        document.close();
    }
</script>

也可以看看:

于 2010-12-24T03:56:17.173 回答