ajax和json

1.XML数据user.xml

<?xml version="1.0" encoding="utf-8" ?>
<users>
<user>
<username>张三XML</username>
<age>33</age>
</user>
<user>
<username>李四XML</username>
<age>34</age>
</user>
</users>

2.JSON数据user.js

[
{ username : "张三JSON", age : 33},
{ username : "李四JSON", age : 34}
]

3.HTML页面代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        table,td,th{border:solid 1px silver;border-collapse: collapse;text-align: center;}
        th,td{ 100px;height: 20px;}
    </style>
    <script>
        function getxml(){
            var xmlhttp=new XMLHttpRequest();
            xmlhttp.open("get","test.xml?randm="+Math.random(),true);
            xmlhttp.onreadystatechange=function(){
                if(xmlhttp.readyState==4&&xmlhttp.status==200){
                    var result=xmlhttp.responseXML;//获取放回的xml数据主体内容
                    var users=result.getElementsByTagName("user");//获取user节点元素
                    for(var i=0;i<users.length;i++){
                        var user=users[i];//获取单个user信息
                        var username=user.getElementsByTagName("username")[0].firstChild.nodeValue;//获取user具体内容
                        var age=user.getElementsByTagName("age")[0].firstChild.nodeValue;
                        appendrow(username,age);//添加行
                    }
                }
            }
            xmlhttp.send();
        }
        //添加新行
        function appendrow(username,age){
            var ui=document.getElementById("userinfo");
            var newrow=ui.insertRow(ui.rows.length);//添加新行
            newrow.insertCell(0).innerHTML=username;//添加新的单元格
            newrow.insertCell(1).innerHTML=age;
        }
        function getjson(){
            var xmlhttp=new XMLHttpRequest();
            xmlhttp.open("get","test.json?random="+Math.random(),true);
            xmlhttp.onreadystatechange=function(){
                if(xmlhttp.readyState==4&&xmlhttp.status==200){
                    var result=xmlhttp.responseText;
                    var users=eval("("+result+")");//使用eval函数返回的字符串变成js对象
                    for(var i=0;i<users.length;i++){
                        var user=users[i];//获取单个user信息
                        appendrow(user.username,user.age)//此处已经知道user数据的格式,故可以直接用user.username和user.age
                    }
                }
            }
            xmlhttp.send();
        }
    </script>
</head>
<body>
    <input type="button" value="加载xml数据" onclick="getxml();">
    <input type="button" value="加载json数据" onclick="getjson();">
    <br/>
    <br/>
    <table id="userinfo">
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody>
            
        </tbody>
    </table>
</body>
</html>


运行页面,点击"加载XML数据"按钮,会从XML数据文件中读取数据并添加至表格中;点击"加载JSON数据"按钮,会从js文件中读取数据并添加至表格.

注意关键字

onreadystatechange (全部小写)

xmlhttp.readyState

XMLHttpRequest

responseXML

getElementsByTagName

getElementById

firstChild.nodeValue

innerHTML

responseText

原文地址:https://www.cnblogs.com/aten/p/8576379.html