读书人

Ajax显示数据到页面上有有关问题麻烦

发布时间: 2012-01-03 22:16:06 作者: rapoo

Ajax显示数据到页面上有问题,麻烦大家帮忙看看?

一点开始按钮,过了会页面就死了,并且也也没有弹出对话框 “4”,以下是我的代码,麻烦高手给看看
JSP:

<script type= "text/javascript ">
var XMLHttpReq; //创建XMLHttpRequest对象

function createXMLHttpRequest() {
if (window.ActiveXObject) {
XMLHttpReq = new ActiveXObject( "Microsoft.XMLHTTP ");
}
else if (window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}
}

//发送请求函数

function sendRequest() {
createXMLHttpRequest();
var url = "track.do?method=init ";
XMLHttpReq.open( "GET ", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}

// 处理返回信息函数

function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
alert( "4 ");
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
alert( "200 ");
showPage();


setTimeout( "sendRequest() ",4000);
}
}
}
function showPage(){
var xmlDoc = XMLHttpReq.responseXML;
var tracks = xmlDoc.getElementsByTagName( "track ");
var result= " <table border=1> <tr> <td> 卡 号 </td> <td> 天 线 </td> </tr> ";
for(var i=0;i <tracks.length;i++){
result += " <tr> ";
var track=tracks[i];
result += " <td> "+track.getElementsByTagName( "cardid ")[0].firstChild.nodeValue+ " </td> "
result += " <td> "+track.getElementsByTagName( "antenna ")[0].firstChild.nodeValue+ " </td> "
result += " </tr> ";
}
result += " </table> ";
document.getElementById( "data ").innerHTML=result;
}


</script>

</head>

<body bgColor= "white " background= "Image/right.gif ">
<input type= "button " value= "开始接收 " onclick= "sendRequest() ">
<div id= "data "> </div>
</body>


=================================================================================
Action:
result_list.add(show);

}


}

// request.setAttribute( "trackShow ", result_list);
// return mapping.findForward( "trackShow ");
}
}
response.setContentType( "text/xml ");
PrintWriter out=response.getWriter();
out.println(parseToXML(result_list));
}catch(Exception e){
e.printStackTrace();
}
return null;
}



public String parseToXML(List list){
StringBuffer sb=new StringBuffer();
sb.append( " <?xml version=\ "1.0\ " encoding=\ "utf-8\ "?> ");
sb.append( " <tracks> ");
for(int i=0;i <list.size();i++){
TrackShow show=(TrackShow)list.get(i);
sb.append( " <track> ");
sb.append( " <cardid> "+show.getCardid()+ " </cardid> ");
sb.append( " <antenna> "+show.getAntenna()+ " </antenna> ");
sb.append( " </track> ");
}
sb.append( " </tracks> ");
return sb.toString();
}
}


[解决办法]
将你的程序中
response.setContentType( "text/xml ");
PrintWriter out=response.getWriter();
out.println(parseToXML(result_list));
换成
response.setContentType( "text/xml;charset=UTF-8 ");
response.getWriter().write(parseToXML(result_list));
response.getWriter().flush();
response.getWriter().close();
试试

读书人网 >Java Web开发

热点推荐