Ajax

1.Ajax是什么

 ajax是异步的js和xml

 是7种技术的综合(js, xml, xstl, dom, xhtml xmlhttprequest,css)

 ajax是一个与服务器端语言无关的技术(php/java ee/.net)

 ajax可以给客户端返回三种格式的数据(文本格式, xml, json)

 无刷新数据交换技术有以下:flash, java applet, 框架, iframe, ajax

onreadystatechange事件:

readystate:

 0: 请求未初始化

 1:启动。已经调用open方法,但没有调用send方法(服务器连接已建立)

 2:发送。已经调用send方法,但尚未接到响应(请求已接收)

 3:接收。已经接收到部分响应数据(请求处理中)

 4:完成。已经接收到全部响应数据,而且已经可以再客户端使用了(请求已完成,且响应就绪)

第一种方式:通过get方式发出请求

 1 <script type="text/javascript">
 2     var xmlHttprequest;
 3         function getXmlHttpRequst() {
 4             // 不同浏览器获取对象xmlhttprequest方法不一样            
 5             if(window.ActiveXObject){
 6                 xmlHttprequest = new ActiveXObject();
 7             }
 8             else{
 9                 xmlHttprequest = new XMLHttpRequest();
10             }
11             return xmlHttprequest;
12         }
13         
14         function checkUser() {
15             var xmlHttprequest = getXmlHttpRequst();   // 一号线:创建对象
16             // 判断xmlHttprequest对象是否创建成功
17             if(xmlHttprequest) {
18                 // 通过xmlHttprequest对象发送请求到服务器
19                 var url = "/test1/a.php?username="+$("username").value;
20                 xmlHttprequest.open("get", url ,true);
21                 xmlHttprequest.onreadystatechange = chuli;  // 调用处理函数输出取得的值
22                  // 二号线:发送数据 
23                 xmlHttprequest.send(null);                                     
24             }
25             else{
26                 alert("创建失败");
27             }        
28         }
29         function $(id) {
30             return document.getElementById(id);
31         }
32         function chuli(){
33             if(xmlHttprequest.readyState == 4){
34                 // console.log(xmlHttprequest.responseText);
35                 $("myres").value = xmlHttprequest.responseText;
36             }
37         }
38     </script>
 1 <!-- a.php -->
 2 <?php
 3 // 接收数据
 4 $username = $_GET['username'];
 5 // echo $username;  // 3号线:接收并返回数据
 6 if($username == "huqingiqng") {
 7     echo "用户名正确";  // 注意,这里数据时返回给请求的页面,所以是在请求的地方输出
 8 }
 9 else{
10     echo "用户名错误";
11 }
12 ?>

第二种:通过post方式发送请求

 1 function checkUser() {
 2             var xmlHttprequest = getXmlHttpRequst();   // 一号线:创建对象
 3             // 判断xmlHttprequest对象是否创建成功
 4             if(xmlHttprequest) {
 5                 // 通过xmlHttprequest对象发送请求到服务器
 6                 var url = "/test1/a.php";
 7                 var data = "username="+$("username").value;
 8                 xmlHttprequest.open("post", url ,true);
 9                 xmlHttprequest.setRequestHeader("Content-type","application/x-www-form-urlencoded") // 这句话必须加上
10                 //指定回调函数
11                 xmlHttprequest.onreadystatechange = chuli;  // 调用处理函数输出取得的值
12                  // 二号线:发送数据 
13                 xmlHttprequest.send(data);                                     
14             }
15             else{
16                 alert("创建失败");
17             }        
18         }
19
 1 <?php
 2 // 接收数据
 3 $username = $_POST['username'];
 4 // echo $username;  // 3号线:接收并返回数据
 5 if($username == "huqingiqng") {
 6     echo "用户名正确";  // 注意,这里数据时返回给请求的页面,所以是在请求的地方输出
 7 }
 8 else{
 9     echo "用户名错误";
10 }
11 ?>
原文地址:https://www.cnblogs.com/redpen/p/8081760.html