• 使用js创建一个简单的ajax


     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>
  • 相关阅读:
    android git问题File not found: git.exe
    asp.net 连接数据库的问题总结
    asp.net记账本
    asp.net对数据库增删改操作
    asp.net 连接数据库操作
    第九、十周周记
    作业四-兴趣问题清单
    价值观作业
    第七周周记
    第三次作业问卷调查
  • 原文地址:https://www.cnblogs.com/flyfish919/p/6512625.html
Copyright © 2020-2023  润新知