六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 36|回复: 0

AJAX处理以XML返回的响应

[复制链接]

升级  52%

34

主题

34

主题

34

主题

秀才

Rank: 2

积分
128
 楼主| 发表于 2013-1-23 01:45:06 | 显示全部楼层 |阅读模式
Ajax请求,服务器端返回XML形式的数据,在页面上用Javascript处理会非常方便。
代码:
// 发送请求var req;function getXMLHttpRequest() {var xRequest = null;if (window.XMLHttpRequest) {xRequest = new XMLHttpRequest();} else if (typeof ActiveXObject != "undefined") {xRequest = new ActiveXObject("Microsoft.XMLHTTP");}return xRequest;}function sendRequest(url, params, HttpMethod, callback) {if (!HttpMethod) {HttpMethod = "GET";}req = getXMLHttpRequest();if (req) {req.onreadystatechange = callback;req.open(HttpMethod,url,true);req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=EUC-JP"); req.send(params);}} 
// 回调函数function change() {            if (xmlHttp.readyState == 4) {                if (xmlHttp.status == 200) {                    var data = xmlHttp.responseXML;                    var datas = data.getElementsByTagName('info');                    for (var i = 0; i < datas.length; i++) alert(datas[i].firstChild.nodeValue);                    datas = data.getElementsByTagName('memo');                    for (i = 0; i < datas.length; i++) alert(datas[i].firstChild.nodeValue);                }            }        } 
// 服务器端代码// XML头,没有这个Javascript解析不出XML,编码一定要设,要不然会乱码StringBuilder infoBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"EUC-JP\"?>");// 根元素<root></root>一定需要,否则Javascript解析不出XML,但名字不一定要叫rootinfoBuilder.append(("<root><info>a</info><info>b</info><memo>c</memo><memo>d</memo></root>"););PrintWriter writer = null;try {// 设置编码response.setContentType("text/xml;charset=EUC-JP");writer = response.getWriter();writer.println(infoBuilder.toString());writer.flush();} catch (Exception e) {} finally {if (writer != null) writer.close();}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表