(100分):为什么Ajax获得的XML数据为null - Web 开发 / Ajax
Ajax调用服务器JSP代码执行读取xml文件的数据并返回。
但Ajax的回调函数中xmlHttp_main.responseXML的值为null, xmlHttp_main.responseTEXT却有值,为什么我返回的xml不能出现在responseXML;
如果我只是简单的返回一个测试的XML数据,却可以从responseXML中获取到:
String strxml= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; strxml=strxml+ "<message><info>not file data! </info></message>"; //response.getWriter().write(strxml);
<%@ page contentType="text/html; charset=GBK"%> <%@ page import="java.io.*" %><%String filename = request.getRealPath("main.xml");java.io.File f = new java.io.File(filename);if (f.exists()){ int length = 0; char [] buffer = new char[1024]; //out.write(buffer, 0, 1024); java.io.FileReader fr = new java.io.FileReader(f); length = fr.read(buffer); response.setContentType( "text/xml; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); response.getWriter().write(buffer); fr.close(); String strxml= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; strxml=strxml+ "<message><info>not file data! </info></message>"; //response.getWriter().write(strxml); }else{ out.write("File isn't exist!");}%>
<?xml version="1.0" encoding="UTF-8"?><note> <rid> RoadId: 1029</rid> <speed> Speed: 85.29</speed> <status> status: 2</status> <info> info: Blocked</info></note>
function stateChanged() { if (xmlHttp_main.readyState==4 && xmlHttp_main.status==200) { var txt,x,i; txt=""; xmlDoc=xmlHttp_main.responseXML; if(xmlDoc != null) alert("xml:---"+xmlDoc); x=xmlDoc.getElementsByTagName("info"); txt=txt+x[0].firstChild.nodeValue+"<br />"; document.getElementById("txtHint").innerHTML=txt; }}