注:所有ajax请求必须在服务器环境下运行
1、请求服务器端的txt格式的数据
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax1-txt</title>
</head>
<body>
<button id="btn">请求数据</button>
<h1 id="txt"></h1>
<script>
var txt=document.getElementById('txt');
var btn=document.getElementById('btn');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
var xhr=null;//对象类型
if (window.XMLHttpRequest) {//非IE5 6
xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test01.txt',true)//常用异步--true
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
alert('4');
if (xhr.status==200) {//OK-->表示响应已就绪
alert('400');
txt.innerHTML=xhr.responseText;
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
<!-- 1、请求服务器端的txt格式的数据 -->
txt格式的数据:
louloloolooooo
2、请求服务器端的json对象
json是以文本即字符串的形式传递的,而JS操作的是JSON对象
JSON字符串->json对象
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax2-json对象</title>
</head>
<body>
<button id="btn">请求数据</button>
<h1 id="list"></h1>
<script>
var list=document.getElementById('list');
var btn=document.getElementById('btn');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
if (window.XMLHttpRequest) {//非IE5 6
var xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test02.json?_='+new Date().getTime(),true)//常用异步--true
//?后跟发送给服务器的数据--->生成不一样的url-->解决缓存问题
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
if (xhr.status==200) {//OK-->表示响应已就绪
var json=JSON.parse(xhr.responseText);//解析成json对象
for (var i = 0; i < json.name.length; i++) {
list.innerHTML+='<li>姓名:'+json.name[i]+', 性别:'+json.sex[i]+', 年龄:'+json.age[i]+' ,成绩:'+json.scroe[i]+'</li>';
}
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
json对象格式的数据:
{
"name":["小喽","安静","老二","佳佳"],
"sex":["女","女","男","男"],
"age":[19,23,34,21],
"scroe":[100,77,33,90]
}
3、请求服务器端的json数组
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax3-json数组</title>
</head>
<body>
<button id="btn">请求数据</button>
<h1 id="list"></h1>
<script>
var list=document.getElementById('list');
var btn=document.getElementById('btn');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
if (window.XMLHttpRequest) {//非IE5 6
var xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test03.json?_='+new Date().getTime(),true)//常用异步--true
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
if (xhr.status==200) {//OK-->表示响应已就绪
var json=JSON.parse(xhr.responseText);//解析成json对象
for (var i = 0; i < json.length; i++) {
list.innerHTML+='<li>姓名:'+json[i].name+', 性别:'+json[i].sex+', 年龄:'+json[i].age+' ,成绩:'+json[i].scroe+'</li>';
}
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
json数组格式的数据:
[
{"name":"小喽","sex":"女","age":"19","scroe":"99"},
{"name":"老二","sex":"男","age":"23","scroe":"77"},
{"name":"安静","sex":"女","age":"24","scroe":"90"},
{"name":"佳佳","sex":"男","age":"20","scroe":"45"}
]
4、请求服务器端的XML格式
获取标签元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax4-XML</title>
</head>
<body>
<button id="btn">请求数据</button>
<ul id="list"></ul>
<script>
var list=document.getElementById('list');
var btn=document.getElementById('btn');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
if (window.XMLHttpRequest) {//非IE5 6
var xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test04.xml?_='+new Date().getTime(),true)//常用异步--true
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
if (xhr.status==200) {//OK-->表示响应已就绪
var xmlDoc=xhr.responseXML;//responseXML 获得 XML 形式的响应数据
var names=xmlDoc.getElementsByTagName('name');
var sexs=xmlDoc.getElementsByTagName('sex');
var ages=xmlDoc.getElementsByTagName('age');
var score=xmlDoc.getElementsByTagName('score');
console.log(names);
for (var i = 0; i < names.length; i++) {
list.innerHTML+='<li>姓名:'+names[i].innerHTML+', 性别:'+sexs[i].innerHTML+', 年龄:'+ages[i].innerHTML+', 成绩:'+score[i].innerHTML+'</li>';
}
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
XML格式的数据:
<persons>
<person>
<name>老王</name>
<sex>女</sex>
<age>19</age>
<score>66</score>
</person>
<person>
<name>老刘</name>
<sex>男</sex>
<age>23</age>
<score>75</score>
</person>
<person>
<name>老李</name>
<sex>女</sex>
<age>24</age>
<score>88</score>
</person>
<person>
<name>老张</name>
<sex>男</sex>
<age>31</age>
<score>94</score>
</person>
</persons>
5、请求服务器端PHP格式数据
返回字符串->需要解析
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax5-PHP</title>
</head>
<body>
<button id="btn">请求数据</button>
<h1 id="list"></h1>
<script>
var list=document.getElementById('list');
var btn=document.getElementById('btn');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
if (window.XMLHttpRequest) {//非IE5 6
var xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test05.php?_='+new Date().getTime(),true)//常用异步--true
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
if (xhr.status==200) {//OK-->表示响应已就绪
var json=JSON.parse(xhr.responseText);//解析成json对象
list.innerHTML=json.name;
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
XML格式的数据:
<?php
$str='{"name":"小喽","sex":"女","age":19,"score":66}';
echo $str;
?>
6、请求服务器端PHP格式数据
返回字符串->不需要解析
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax5-PHP2</title>
</head>
<body>
<input type="text" name="" value="" id="ipt">
<button id="btn">请求数据</button>
<h1 id="txt"></h1>
<script>
var txt=document.getElementById('txt');
var btn=document.getElementById('btn');
var ipt=document.getElementById('ipt');
btn.onclick=function(){
//1、创建XMLHttpRequest对象
if (window.XMLHttpRequest) {//非IE5 6
var xhr=new XMLHttpRequest();//实例对象
}else{//IE5 6
var xhr=new ActiveXObject('Microsoft.XMLHTTP');
}
//2、打开与服务器的链接
xhr.open('get','test06.php?age='+ipt.value+'&_='+new Date().getTime(),true)//常用异步--true
//3、发送给服务器
xhr.send(null);//空或null--get请求
//4、响应就绪
xhr.onreadystatechange=function(){
if (xhr.readyState==4) {//请求完成
if (xhr.status==200) {//OK-->表示响应已就绪
txt.innerHTML=xhr.responseText;
}else{
alert(xhr.status);
};
};
};
}
</script>
</body>
</html>
XML格式的数据:
<?php
$str=$_GET['age'];
switch($str){
case '21':
echo '小喽';
break;
case '22':
echo '小雪';
break;
case '23':
echo '佳佳';
break;
case '24':
echo '迪迪';
break;
default:
echo "小妖精";
break;
}
?>