在JavaScript中使用json.js:Ajax项目之GET请求(同步)

1、用php编写一个提供数据的响应程序(phpdata.php)

<?php 
$arr=array(1,2,3,4);
//将数组编码为JSON格式的数据
$jsonarr=json_encode($arr);
//输出JSON格式的数据
echo $jsonarr;
?>

2、客户端(ajax.html)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
        <script type="text/javascript" src="json.js"></script>
        <script type="text/javascript">
            function getXHR(){//获取跨浏览器的XmlHttpRequest对象
                var req;
                if (window.XMLHttpRequest) {
                    req= new XMLHttpRequest();
                }else if(window.ActiveXObject){
                    req= new ActiveXObject("Microsoft.XMLHTTP");
                }
                return req;
            }
            
            function getServerData(){
                //获取跨浏览器的XHR对象
                xhr = getXHR();
                //设置随机数,避免AjaxURL的HTTP缓存
                rand= Math.random(1);
                url="phpdata.php?id="+rand;
                //XmlHttpRequest对象的open()方法;
                //创建一个新的HTTP连接。
                //可以是GET或者POST这样的所有有效的请求类型。
                //URL应该是一个完整的路径地址。
                //false或者true参数控制send()方法是会阻塞(等待服务器返回数据)还是立即返回。
                xhr.open("GET",url,false);
                //XmlHttpRequest对象的send()方法;
                //向服务器发出请求。
                //基于open()方法的false(同步)或者true(异步)控制,或者等待服务器数据,或者立即返回
                //括号中content参数,在post类型中用到,它可以用来向服务器发送数据
                xhr.send();
                //XmlHttpRequest对象的responseText属性:以字符串形式表达服务器的响应内容
                json=xhr.responseText;
                //将json数据转为js数组
                jsArr=json.parseJSON();
                div=document.getElementById("jsonData");
                div.innerHTML=jsArr[1];
            }
        </script>
	</head>
	<body>
		<a href="#" onclick="getServerData()">Get Server Data</a>
        <div id="jsonData"></div>
	</body>
</html>

输出结果:2

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。