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
