码迷,mamicode.com
首页 > Web开发 > 详细

使用js创建一个简单的ajax

时间:2017-03-07 08:13:23      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:hang   type   doctype   set   ror   ready   get请求   更新   pen   

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <script type="text/javascript">
 5             window.onload = function(){
 6                 //1,取得a节点,并为其添加onclick响应函数。
 7                 document.getElementsByTagName("a")[0].onclick = function(){
 8                     //3,创建一个XMLHttpRequest对象
 9                     var request = new XMLHttpRquest();
10                     //4,准备发送请求的url
11                     var url = this.href;
12                     //带时间戳的url: url = this.href + "?time" + new date()  (这里的date()对象是js的对象)
13                     //使用这种url,每次都会new一个新的date对象,保证每次时间更新。能起到禁用缓存的效果
14                     var method = "GET";
15                     //5,调用XMLHttpRequest对象的open方法
16                     //open(method, url asynch)
17                     //XMLHttpRquest的open方法允许程序员用一个ajax调用向服务器发送请求
18                     //参数:method,请求类型,类似于"GET"或者"POST"的字符串。若只想从服务器检索一个文件,而不
19                     //需要发送任何数据,使用GET(可以在GET请求里面通过附加在URL上的查询字符串来发送数据,不过
20                     //数据大小限制为2000个字符)。若需要向服务器发送数据,用POST。
21                     //在某些情况下,有些浏览器会把多个XMLHttpRequest请求的结果缓存在同一个URL,如果对每个请求
22                     //的响应不同,就会带来不好的结果。在此将时间戳追加到URL的最后,就能确保URL的唯一性,从而
23                     //避免浏览器缓存结果。
24                     //参数:url,路径字符串,指向你所请求的服务器上的那个文件。可以是绝对路径或者相对路径。
25                     //参数:asynch,表示请求是否要异步传播,默认值为true。指定true,在读取后面的脚本之前,不需
26                     //要等待服务器的响应。指定false,当脚本处理过程中经过这点时,会停下来,一直等到ajax请求执行
27                     //完毕再继续执行
28                     request.open(method, url);
29                     //6,调用XMLHttpRequest对象的send方法
30                     //request.setRequestHeader("ContentType", "application/x-www.hello.com");
31                     //request.send("name=‘foratest‘");
32                     request.send(null);
33                     //7, 为XMLHttpRequest对象添加onreadystatechange响应函数
34                     //onreadystatechange事件处理函数由服务器触发,而不是用户
35                     //在ajax执行过程中,服务器会通知客户端当前的通信状态。这依靠更新XMLHttpRquest对象的
36                     //readyState来实现。改变readystate属性是服务器对客户端连接操作的一种方式。
37                     //每次readystate属性的改变都会触发readystatechange事件。如果把onreadystatechange事件处理函
38                     //数赋给一个函数,那么每次readyState值的改变都会引发该函数的执行。
39                     //readystate属性表示Ajax请求的当前状态。它的值用数字代表。
40                     //0代表未初始化,还没有调用open方法。
41                     //1代表正在加载,open方法已经被调用,send方法还没有被调用。
42                     //2代表已加载完毕,send已被调用,请求已经开始。
43                     //3代表交互中,服务器正在发送响应。
44                     //4代表完成。响应发送完毕。
45                     //readyState值的变化会因浏览器的不同而有所差异,但是当请求结束的时候,每个浏览器都会把
46                     //readyState的值统一设为4
47                     request.onreadystatechange = function(){
48                         //8,判断响应函数是否完成:XMLHttpReauest对象的readyState 属性值为4 的时候
49                         //status:服务器发送的每一个响应也都带着首部信息,三位数的状态码是服务器发送的响应中最重要
50                         //的首部信息,并且属于超文本传输协议中的一部分。
51                         //常用状态吗机器含义:
52                         //404没找到页面(not found)
53                         //403禁止访问(forbidden)    
54                         //500内部服务器出错(internal service error)
55                         //200一切正常(OK)
56                         //304没有被修改(not modified)
57                         //在XMLHttpRequest对象中,服务器发送的状态码都保存在status属性里。通过把这个值和200或304
58                         //比较,可以确保服务器是否已成功发送一个成功的响应
59                         if(request.status == 200 || request.status == 304){
60                             alert(request.responseText);
61                         }
62                     }    
63                     return false;
64                 }
65             }
66         </script>
67     </head>
68     <body>
69         <a href="helloajax.txt">hello ajax !</a>
70     </body>
71 </html>

 

使用js创建一个简单的ajax

标签:hang   type   doctype   set   ror   ready   get请求   更新   pen   

原文地址:http://www.cnblogs.com/flyfish919/p/6512625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!