最近系统又出现了新的问题,以前一直正常运行的机能突然不好使了。看了看代码,没发现问题,而且故障现象无法在测试环境中再现,开始有点晕了。
就开始怀疑是不是真实环境中有人更改配置呢,最终发现了竟然是特殊字符在作怪,看来还是自己孤陋寡闻了。
程序中通过ajax,调用后台程序,返回xml类型的数据,对以下字符要进行特殊的处理。
& → &
< → < 小于
> → > 大于
' → ' 单引号
" → " 双引号
对于Firefox这样就ok了,对于ie好像还是不完全啊。
要在js中再次进行替换
str.gsub("&","&");
gsub为prototype中方法,替换全部字符串。
这下IE,FF就都ok了。
晕死了,看来做任何事情都需要折磨一下了,其实apache下有共通的类可以处理此问题。
StringEscapeUtils.escapeXml(str)