Firefox上页面跳错 XML解析错误:未找到元素
在Firefox Web程序页面跳错显示黄色背景页面提示“XML解析错误:未找到元素”或英文“XML parse error: not found elements”。这个问题观察了很久,这个问题不局限于ASP.NET、PHP或JSP;在IE浏览器上不会出现这个问题,同时在本地机器上编译执行程序用Firefox预览也不会跳这个错误,但程序上传到服务器上去,Firefox就莫名出现这个错误提示。

在中文和英文资料中搜索都有被这个问题困扰的,目前我们这边观察了几周时间,发现是cookie过期之后Firefox无法在更新Cookie所致,当cookie在客户端过期之后,程序需要读取Cookie参数来判断执行程序,Firefox的缓存cookie存储和IE有很大区别,IE当程序正在访问过程中Cookie过期之后,刷新页面依然会从缓存中读取参数执行,如果再次打开新窗口访问同一个页面,则会重新生成一个新的Cookie参数;而Firefox不会,当Cookie失效之后,在Firefox上刷新页面程序这时要去读取Cookie参数,这时就会报错“XML解析错误:未找到元素 ”,在Firefox中当Cookie过期失效之后,是不会在页面刷新中生成更新新的Cookie,除非手动在“工具(T)”菜单的“选项(O)”下有个“隐私”面板选项中点开“删除私人Cookie”中“移除所有Cookie”或者找到当前跳错网站的Cookie都删除掉,之后又能正常进入到页面中,这时Firefox就生成了全新Cookie参数了。

这个问题也可以叫做Firefox的Cookie冲突,由于cookie某个参数正是程序要用的参数,而这个参数已经过期又无法更新这时程序去获取到某个cookie参数时为空值,程序无法识别所以跳出黄色背景“XML解析错误:未找到元素 ”的页面。

解决办法:在程序中务必强行追加一个判断如当Cookie值为null时则让程序写入新的Cookie值,然后再读取Cookie参数进行程序下一步的执行。