ajax初识

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title></title>
</head>
<script type="text/javascript">
  window.onload = function() {
  //1:获取a节点,并对其添加onclick()相应函数
  document.getElementsByTagName("a")[0].onclick = function() {
  // 2:创建一个XMLHttpRequest对象
    var request = new XMLHttpRequest();
    // 3:准备发送请求的数据:url
    var url = this.href;
    //4:调用XMLHttpRequest对象的open方法
    request.open("GET", url);
    //5:调用XMLHttpRequest对象的send方法

    request.send(null);
    //6:为XMLHttpRequest对象添加Onreadystatechange响应函数
    request.onreadystatechange = function() {
      //判断响应是否完成:XMLHttpRequest的readyState的属性值为4的时候
      // alert(request.readyState);
      if(request.readyState == 4) {
      // 判断响应是否可用,XMLHttpRequest的status的属性值为200的时候

         if(request.status == 200 || request == 304){
          //8:打印响应结果
          alert(request.responseText);
        }


      }
    }
  return false; //保证不会调转啊,取消点击的默认行为
  };
}
</script>
</head>

<body>
<a href="helloAjax.txt">helloAjax</a>
</body>

</html>

 上述实现默认a链接不跳转,get方法读取hello_world.txt内部内容

*POST:加 request.setRequestHeader("ContentType","application/x-www-form-urlencoded");

 

1、读取html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
  <title>显示名人信息</title>
  <style type="text/css">
    *{ font-family:"微软雅黑"; font-size:15pt; } a{ color:#ABABAF; } h2,h3{ color:green; }
  </style>
<script type="text/javascript">
  window.onload=function(){
    var aNodes=document.getElementsByTagName("a");
    for(var i=0;i<aNodes.length;i++){
      aNodes[i].onclick=function(){
      var request=new XMLHttpRequest();
      var method="GET" ;
      var url=this.href;
      request.open(method,url);
      request.send(null);
      request.onreadystatechange=function(){
        if(request.readyState==4){
          if(request.status==200){ //直接将返回的数据插入到页面
            document.getElementById( "details").innerHTML=request.responseText;
          }
        }
      }
      return false;
    }
  }
</script>
</head>

<body>
<ul>
<li>
<a href="file/ming.html">rgx</a>
<li>
<a href="file/hong.html">lj</a>
</ul>
<div id="details"></div>
</body>

</html>

2、读取xml

if(request.status==200){
/*
当数据传输格式变为xml的时候,我们应该先接收到数据,再解析数据,然后将解析到的数据,动态的创建
html元素,再将这些html元素加在div中
*/
var result=request.responseXML;

var name=result.getElementsByTagName("name")[0].firstChild.nodeValue;
var studentId=result.getElementsByTagName("studentId")[0].firstChild.nodeValue;
var param=result.getElementsByTagName("param")[0].firstChild.nodeValue;

var name_h2=document.createElement("h2"); name_h2.appendChild(document.createTextNode(name));
var studentId_h3=document.createElement("h3"); studentId_h3.appendChild(document.createTextNode(studentId));
var param_h3=document.createElement("h3"); param_h3.appendChild(document.createTextNode(param)); var details=document.getElementById("details"); details.innerHTML=""; details.appendChild(name_h2); details.appendChild(studentId_h3); details.appendChild(param_h3); }

3、读取json

<script>
var jsonobject = {
  "name": "xiao A",
  "age": "12",
  "address": {
    "city": "beijing",
    "school": "middle"
  },
  "like": function() {
    alert("eat!");
  }
};

var jsonStr = "{'name':'xiao B'}";

//把一个字符串转为json对象
//使用eval()方法

var testStr = "alert('hellojson')";

eval(testStr);

//把json转为json对象
var testobject = eval("(" + jsonStr +")");
alert(testobject.name);
</script>

 

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>显示名人信息</title>  
  6. <style type="text/css">  
  7. * {  
  8.     font-family: "微软雅黑";  
  9.     font-size: 15pt;  
  10. }  
  11.   
  12. a {  
  13.     color: #ABABAF;  
  14. }  
  15.   
  16. h2, h3 {  
  17.     color: green;  
  18. }  
  19. </style>  
  20. <script type="text/javascript">  
  21.     window.onload = function() {  
  22.         var aNodes = document.getElementsByTagName("a");  
  23.         for (var i = 0; i aNodes.length; i++) {  
  24.             aNodes[i].onclick = function() {  
  25.                 var request = new XMLHttpRequest();  
  26.                 var method = "GET";  
  27.                 var url = this.href;  
  28.                 request.open(method, url);  
  29.                 request.send(null);  
  30.                 request.onreadystatechange = function() {  
  31.                     if (request.readyState == 4) {  
  32.                         if (request.status == 200) {  
  33.                             var result = request.responseText;  
  34.                             // 把result转换为json对象,eval函数会把字符串当做js代码执行  
  35.                             var object = eval("("+ result +")");  
  36.                               
  37.                             var name  = object.person.name;  
  38.                             var studentId = object.person.studentId;  
  39.                             var param = object.person.param;  
  40.                               
  41.                             var name_h2 = document.createElement("h2");  
  42.                             name_h2.appendChild(document.createTextNode(name));  
  43.                             var studentId_h3 = document.createElement("h3");  
  44.                             studentId_h3.appendChild(document.createTextNode(studentId));  
  45.                             var param_h3 = document.createElement("h3");  
  46.                             param_h3.appendChild(document.createTextNode(param));  
  47.                               
  48.                             var details = document.getElementById("details");  
  49.                             details.innerHTML = "";  
  50.                             details.appendChild(name_h2);  
  51.                             details.appendChild(studentId_h3);  
  52.                             details.appendChild(param_h3);  
  53.                         }  
  54.                     }  
  55.                 }  
  56.                 return false;  
  57.             }  
  58.         }  
  59.     }  
  60. </script>  
  61. </head>  
  62. <body>  
  63.     <ul>  
  64.         <li><href="file/ming.json">rgx</a>  
  65.         <li><href="file/hong.json">lj</a>  
  66.     </ul>  
  67.     <div id="details"></div>  
  68. </body>  
  69. </html>  

转载于:https://www.cnblogs.com/infernoyy/p/7247947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值