当服务器发送空响应时,Primefaces 轮询停止工作
Primefaces poll stops working when the server sends an empty response
我使用 Primefaces 4.0 的轮询组件每 10 分钟向服务器发出一次请求。大部分时间一切正常,但有时,我不知道为什么,服务器 returns 带有 200 代码的空响应 (OK)。这是一个 100% 空的响应。一个 0 字节长度的响应。所以 PrimeFaces.ajax.AjaxResponse
方法得到一个 null
值作为参数,当它试图访问这个对象的 documentElement
属性 时,我得到一个错误 "Uncaught TypeError: Cannot read property documentElement of null" 一切都停止了。
我不知道为什么我得到的响应是空的,可能是网络问题,也可能是应用程序所在的集群问题运行,也可能是代理;但是系统管理员不太关心它,所以,我需要找到一个软件解决方案。
除了编辑 Primefaces 自己的文件,我还能做些什么吗?
非常感谢您能给我的任何帮助!
为了防止有人疑惑,我结束了覆盖PrimeFaces.ajax.AjaxResponse
,检查响应是否为空,如果一切正常则调用原始方法
OriginalAjaxResponse = PrimeFaces.ajax.AjaxResponse;
PrimeFaces.ajax.AjaxResponse = function (responseXML) {
if (responseXML != null)
OriginalAjaxResponse(responseXML);
}
虽然不漂亮,但很管用
我昨天遇到了同样的问题,我发现这篇博文告诉我们将 h:outputStylesheet 和 h:outputScript 移到主体的末尾。
<h:outputStylesheet library="css" name="main.css" />
<h:outputScript library="js" name="primefaces.locales.js"/>
我使用 Primefaces 4.0 的轮询组件每 10 分钟向服务器发出一次请求。大部分时间一切正常,但有时,我不知道为什么,服务器 returns 带有 200 代码的空响应 (OK)。这是一个 100% 空的响应。一个 0 字节长度的响应。所以 PrimeFaces.ajax.AjaxResponse
方法得到一个 null
值作为参数,当它试图访问这个对象的 documentElement
属性 时,我得到一个错误 "Uncaught TypeError: Cannot read property documentElement of null" 一切都停止了。
我不知道为什么我得到的响应是空的,可能是网络问题,也可能是应用程序所在的集群问题运行,也可能是代理;但是系统管理员不太关心它,所以,我需要找到一个软件解决方案。
除了编辑 Primefaces 自己的文件,我还能做些什么吗?
非常感谢您能给我的任何帮助!
为了防止有人疑惑,我结束了覆盖PrimeFaces.ajax.AjaxResponse
,检查响应是否为空,如果一切正常则调用原始方法
OriginalAjaxResponse = PrimeFaces.ajax.AjaxResponse;
PrimeFaces.ajax.AjaxResponse = function (responseXML) {
if (responseXML != null)
OriginalAjaxResponse(responseXML);
}
虽然不漂亮,但很管用
我昨天遇到了同样的问题,我发现这篇博文告诉我们将 h:outputStylesheet 和 h:outputScript 移到主体的末尾。
<h:outputStylesheet library="css" name="main.css" />
<h:outputScript library="js" name="primefaces.locales.js"/>