最近在学AJAX,创建了一个xmlhttpRequest请求,对象为xml文件,当时在使用responseXML将请求结果格式化输出是,返回结果是null
xmlHttp('GET','ajax.xml',true);
try { xmlHttp=new XMLHttpRequest(); } catch(e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlHttp.open("GET", "note.xml", false); xmlHttp.onreadystatechange=function (){ if(...) { xmlHttp.responseXml(); //null } }
1、首先xmlHttp.responseXml;应该是属性才对。
2、xmlHttp.Send(),貌似没有这句代码额~
我写错了,xmlHttp.send()是我漏写上去了,关键是xmlHttp.responseXML返回结果为null
@sun懒虫: 你随便把if贴完,而且,必须要是开发者服务器或者iis才有效哦~
@幻天芒: 我是使用的Apache服务,if(xmlHttp.readyState==4&&xmlHttp.status==200),这部分都是没有问题的,我在网上查看到,如果xmlHttp的响应体不是"text/xml",则返回null,是不是请求xml格式文件需要设置请求头为"text/xml"?
@sun懒虫: 你看下responseText有值没?
@幻天芒: responseText返回整个xml文档的内容,responseXML返回为null
@sun懒虫: 这样的话,看来是解析为xml的时候,出现了错误。在响应请求的时候,后端增加如下代码看看:response.setContentType("text/xml;charset=UTF-8");
@幻天芒: 应该就是文件类型的问题了,我重新建立一个xml文件以后,就没有这样的问题了,直接添加
<note time="16:06:03"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
之后就没有问题了,可能之前的xml文件格式出问题了,问题的根源找到了。谢谢
@sun懒虫: 解决问题就好,没帮上什么忙,呵呵~