gpt4 book ai didi

ajax - 这个奇怪的 httpError 是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 17:02:28 28 4
gpt4 key购买 nike

我在实现 MyFaces 2.0 时使用 JSF我有 2 个 jsf 页面 login.xhtml 和 register.xhtml。

登录.xhtml:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<h:head>
<title>System CollDoc</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="3" >
<h:outputLabel for="username" value="Login:"/>
<h:inputText id="username" value="#{userManager.userName}" required="true" requiredMessage="#{msg.requiredLoginMsg}">
<f:ajax event="blur" render="usernameMessage"/>
</h:inputText>
<h:message id="usernameMessage" for="username" />

<h:outputLabel for="password" value="#{msg.password}"/>
<h:inputSecret id="password" value="#{userManager.password}" required="true" requiredMessage="#{msg.requiredPassMsg}">
<f:ajax event="blur" render="passwordMessage" />
</h:inputSecret>
<h:message id="passwordMessage" for="password" />

<h:commandButton value="#{msg.login}" action="#{userManager.login}"/>
</h:panelGrid>
</h:form>

<h:messages id="messages" globalOnly="true"/>

<h:link value="#{msg.register}" outcome="register.xhtml"/>
</h:body>
</html>

注册.xhtml:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">

<h:head>
<title>System CollDoc</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="3" >
<h:outputLabel for="login" value="Login:"/>
<h:inputText id="login" value="#{registerBacking.registerLog}" required="true" requiredMessage="#{msg.requiredLoginMsg}">
<f:ajax event="blur" render="usernameMessage"/>
</h:inputText>
<h:message id="usernameMessage" for="login"/>

<h:outputLabel for="pass" value="#{msg.password}"/>
<h:inputSecret id="pass" value="#{registerBacking.registerPass}" required="true" requiredMessage="#{msg.requiredPassMsg}">
<f:ajax event="blur" render="passwordMessage" />
</h:inputSecret>
<h:message id="passwordMessage" for="pass" />

<h:commandButton value="#{msg.login}" action="#{registerBacking.register}"/>

</h:panelGrid>
</h:form>

<h:link class="link" value="#{msg.returnTxt}" outcome="/pages/login.xhtml"/>

</h:body>
</html>

我运行我的应用程序,首先我看到了 login.xhtml 页面。我首先单击 inputText“用户名”,然后单击 inputSecret“密码”(“用户名”的验证由模糊的 ajax 请求运行),然后单击注册页面的链接(“密码”的验证由模糊的 ajax 请求运行)我得到错误的对话:

Error Message: Request failed with status 0 and reason 

--------------------------------------------------------
Calling function:myfaces._impl.xhrCore._AjaxRequest
Error Name: httpError
--------------------------------------------------------
Note, this message is only sent, because project stage is development and no other error listeners are registered.

我单击“确定”按钮,我的网络浏览器中出现了 register.xhtml 页面。在注册页面情况相同:我点击 inputText“登录”,接下来点击 inputSecret“通过”(“登录”的验证由模糊的 ajax 请求运行)接下来我点击链接返回登录页面或按钮以运行业务逻辑( “通过”的验证由模糊的 ajax 请求运行),我得到同样的错误

错误是什么意思?怎么了?


编辑:

我现在再次运行我的应用程序,但没有收到任何错误消息。为什么我有时会收到此错误?

最佳答案

这是混合 AJAX 和“常规”请求的结果。当按钮被点击时,两个请求并行运行:一个 - 模糊验证的 AJAX 请求,第二个 - commandButton 的表单提交。JSF 在 AJAX 请求完成时检测到它并将其报告为潜在问题(例如,如果两个请求都在服务器端执行了一些相互依赖的操作)。

在您的情况下修复它的最简单方法可能是使按钮也执行 AJAX 请求(将 f:ajax 添加到 h:commandButton),然后使用 JSF将请求放入队列,这将保证请求是连续而不是同时发出的。

关于ajax - 这个奇怪的 httpError 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302039/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com