J2EE学习笔记
我们的失落……
posts - 13,comments - 1,trackbacks - 0
在用AJAX(结合Struts)做一个联动下拉框的过程中,后台action中返回的XML用如下javascript代码解析

function parseMessage() {
    
var xmlDoc=req.responseXML.documentElement;
    
var xSel=xmlDoc.getElementsByTagName("addr4");
}

奇怪的是 var xSel = xmlDoc.getElementsByTagName("addr4") 始终无法取得若干个 <addr4>XXX</addr4> 内容, 在网上查也都是这种写法,搞了一个下午弄的我头晕脑胀。最后同事一语提醒了我,在action中加入以下代码,问题解决:

response.setContentType("text/xml;charset=UTF-8");
response.setHeader(
"Cache-control","no-cache");

结论:如果没有这两句,返回值不会被当做XML处理,当然就取不到 addr4 节点


2008.10.22 补充:有的人写将上面的第一句简化成:

response.setContentType("text/xml");

这样做如果返回的XML中没有中文时没问题,但是如果返回的XML中存在中文的话,也会无法取得返回的XML
posted on 2008-10-09 19:55 J2EE学习笔记 阅读(280) 评论(0)  编辑  收藏 所属分类: ajax原创

只有注册用户登录后才能发表评论。


网站导航: