Ajax返回xml文本无法读取的问题

   使用Ajax框架,后台使用php进行处理,前台使用js。后台php将数据从数据库中取出之后,按照xml格式封装并返回给前台。

这时候在前台使用responseText方法,可以获得xml文本,但是使用responseXML方法返回的都是空值。将responseText返回

的内容输出到文本中,可以使用IE打开xml文件。可见xml的格式是没有问题的。从网上查了很多,对该问题的解决方法大致有三种:

 

1.检查xml格式是否有误,如果xml格式错误的话是没法获得xml值的。

 

2.在后台生成xml文本时,要在输出的开始加入xml头。例如在php语言中,使用

header("Content-type: text/xml")

 

3.将xml设置为不缓存模式。在php中,使用

header("Cache-Control : no-cache,no-store,max-age=0,must-revalidate")

 

在前台可以使用responseXML.documentElement获得xml对象,然后再使用DOM解析方法访问xml节点。

经过上述三点的排查,发现忘记了设置xml缓冲方式。增加设置之后,前台可以通过responseXML的方法获得xml对象。

你可能感兴趣的:(xml,Ajax,数据库,PHP,header,ajax框架)