使用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对象。