首页 新闻 会员 周边 捐助

responseXML格式化输出XML文件为空

0
悬赏园豆:50 [已解决问题] 解决于 2014-08-05 09:02

最近在学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
}  
}
The_Wind_Rises的主页 The_Wind_Rises | 初学一级 | 园豆:59
提问于:2014-08-04 09:30
< >
分享
最佳答案
1

1、首先xmlHttp.responseXml;应该是属性才对。

2、xmlHttp.Send(),貌似没有这句代码额~

收获园豆:50
幻天芒 | 高人七级 |园豆:37207 | 2014-08-04 09:41

我写错了,xmlHttp.send()是我漏写上去了,关键是xmlHttp.responseXML返回结果为null

The_Wind_Rises | 园豆:59 (初学一级) | 2014-08-04 09:46

@sun懒虫: 你随便把if贴完,而且,必须要是开发者服务器或者iis才有效哦~

幻天芒 | 园豆:37207 (高人七级) | 2014-08-04 09:51

@幻天芒: 我是使用的Apache服务,if(xmlHttp.readyState==4&&xmlHttp.status==200),这部分都是没有问题的,我在网上查看到,如果xmlHttp的响应体不是"text/xml",则返回null,是不是请求xml格式文件需要设置请求头为"text/xml"?

The_Wind_Rises | 园豆:59 (初学一级) | 2014-08-04 10:14

@sun懒虫: 你看下responseText有值没?

幻天芒 | 园豆:37207 (高人七级) | 2014-08-04 10:28

@幻天芒: responseText返回整个xml文档的内容,responseXML返回为null

The_Wind_Rises | 园豆:59 (初学一级) | 2014-08-04 10:29

@sun懒虫: 这样的话,看来是解析为xml的时候,出现了错误。在响应请求的时候,后端增加如下代码看看:response.setContentType("text/xml;charset=UTF-8"); 

幻天芒 | 园豆:37207 (高人七级) | 2014-08-04 11:43

@幻天芒: 应该就是文件类型的问题了,我重新建立一个xml文件以后,就没有这样的问题了,直接添加

<note time="16:06:03">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

之后就没有问题了,可能之前的xml文件格式出问题了,问题的根源找到了。谢谢

The_Wind_Rises | 园豆:59 (初学一级) | 2014-08-05 09:01

@sun懒虫: 解决问题就好,没帮上什么忙,呵呵~

幻天芒 | 园豆:37207 (高人七级) | 2014-08-05 09:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册