关于responeXML的返回值

来源:互联网 发布:页面置换算法实验报告 编辑:程序博客网 时间:2024/04/27 22:15

  突然想尝试写一个Ajax来学习研究下了,去w3c school看了Ajax的介绍后,了解到Ajax其实就是利用了javascript的一个XMLHttpRequest对象来与server端通信,从而达到异步更新页面的效果。用XMLHttpRequest的responseText来尝试返回一个文本没问题后,就尝试用responseXML来返回一个XML并用javascript来处理了,但中间却经历了不少波折~

 

服务端生成xml的代码:

 

<?php

header("Content-type:text/xml");     //发送文件头让浏览器知道这是

XMLheader("Cache-Control: no-cache"); //缓存处理

echo "<?xml version=/"1.0/" encoding=/"utf-8/" ?>   //XML文件的第一行,在它之前不能有任何输出。<ddd>wowowo</ddd>";

?>

 

在生成xml文件时真的要注意在<?xml ?>标签前的空格和空行,都会引起xml报错的~  

 

浏览端代码:

 

<html>

<script>

function getget(){

y=document.getElementById("yoyo");

var xmlhttp;

try {

    xmlhttp=new XMLHttpRequest;

}catch(e) {

    try {

        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");

    }catch(e) {

        alert("你的浏览器连AJAX都无支持~~");

    }

}

xmlhttp.onreadystatechange=function() {

    if(xmlhttp.readyState==4) {

        xc=xmlhttp.responseXML;

        y.value=xc.getElementsByTagName("ddd")[0].childNodes[0].nodeValue;

    }

}

xmlhttp.open("post","ddd.php",true);

xmlhttp.send(null);

}

</script>

<input id="yoyo" type="text"><input type="button" value="haha" onclick="getget();">

</html>

 

  在w3c的教程中看到是这样赋值个xc的:xc=xmlhttp.responseXML.documentElement,但我用这种赋值方式时,浏览器会报错~最后朋友告诉我responseXML返回的是一个文档,这样的话直接将xmlhttp.responseXML赋予xc后,用xc.getElementsByTagName就可以提取数据了~

 

  这只是一个很简单的实例,连发送数据给server端的代码也没有,不过这主要是用来学习研究怎样处理responseXML返回的XML数据~了解了这个后,要改进此段代码也变的轻松了~

原创粉丝点击