今天遇到一个比较奇怪的情况,生产上一个非常简单的JSP页面报错了。在本地上测试了很多遍都ok,但是在生产上不行。而且在预生产又没有对应测试环境,因此解决起来提交头疼,因为改过的东西只能拿到生产环境测试,而生产上又不能拿来测试玩。
JSP页面输出的XML报文在IE中正常显示,但是在chrome中不能正常显示,报如下错误:

使用chrome浏览器进行调试,发现在输出的xml报文上方有空行,如下:

正是由于有空行,XML报文才无法正常在chrome浏览器显示。但是JSP页面输出只是字符串,为什么会有空行呢? 不知道
经过测试只要改变JSP页面的排版就能让Chrome浏览器正常显示了,只需要将如下这行代码放到jsp页面的第一行部分,就OK了
response.setContentType("text/XML");
放到第二行,在IE中能够正常显示XML报文,但是在Chrome浏览器中不能正常显示。到此问题解决了。
再使用chrome查看,发现空行消失了,报文也能正常显示了,如下:

本文介绍了一种在Chrome浏览器中无法正确显示由JSP页面输出的XML文件的问题,并提供了具体的解决方案。通过调整JSP页面中contentType设置的位置,成功消除了XML文件前的空行,使XML文件能在Chrome中正常展示。
1万+

被折叠的 条评论
为什么被折叠?



