微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ajax在JSF 2应用程序中不起作用

尝试使用< f:ajax render =“@ form”listener =“#{myBean.onSelectItemChange}”/>刷新表单时出错.

弹出窗口中的消息是“emptyResponse:从服务器收到空响应.检查服务器错误日志.”

在Firefox控制台中,错误是“XML解析错误XML或文本声明不在实体位置的开头”

相同的代码在我的本地环境中运行良好.我在本地和生产环境中都使用Tomcat 9.我只在生产中遇到错误.

xhtml页面以.开头

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

渲染时,<!DOCTYPE html>会自动添加页面顶部.

我还尝试添加<?xml version =“1.0”encoding =“UTF-8”?>在页面顶部.

编辑:
更具体的错误
XML解析错误:XML或文本声明不在实体的开头位置:http://serverIP:8080/app/myPage行号2,第1列:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>

更新:XHR响应如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<partial-response>
...
</partial-response>

第一行重复两次

顺便说一句,该应用程序在我的开发环境中正常工作.我在开发(Windows)和生产(Ubuntu)计算机上使用Tomcat9.

解决方法

如果客户端记录此错误,则服务器端XHTML不应该受到指责或仅是间接指责.了解browswer开发人员工具中真正的响应将显示真正的原因.

在你这样做后,很明显有一个“重复”的序言.在标题中(或在谷歌搜索中)使用它很可能会指向Stackoverflow中的现有Q / A并有效地使此Q / A与其重复:Ajax update has no effect,Firefox errors: XML or text declaration not at start of entity

我仍然将此作为答案发布有两个原因:

>向他人展示“根本原因分析”的相关性>由于它上面的赏金,它不能被标记为重复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐