对浏览器的要求:

 var request;
 
  if (window.HttpRequest){
   
     request = new XMLHttpRequest();     //IE7+ , Firefox , Chrome , Opera , Safari.....
   
   } else {
    
      request = new ActiveXObject("Microsoft.XMLHTTP");    // IE6 , IE5
  
  }

 

//在Ajax中,获取用户的输入值是用: .value;   而在jQuery中,是: .val();

  

异步处理 : 
     发送请求操作:
    1. 创建XMLHttpRequest 对象

    2. 使用open方法中参数 open(method,url,async)
      method:发送数据类型 :get 或 post
       URL:发送地址
       async:是否使用异步   一般设置为  true
  
  3.使用send(String) 将数据发送至服务器
     注: 使用get方法不用给参数

   
  eg:发送请求:
       request.open("GET","url",true);
       request.send();

       request.open("POST","url",true);
       request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
       request.send("发送的数据");

 

 

 获取响应:

    requestText: 获取字符串形式的响应数据。

    responseXML: 获取XML形式的响应数据。

   status 和 statusText: 以数字和文本形式返回HTTP状态码。

   getAllResponseHeader():获取所有的响应报头。

   getResponseHeader() : 查询响应中的某个字段的值;  注:这个要加参数

 

   监听 readyState属性的变化:
   0代表:请求未初始化  , open还没调用
   1代表: 服务器连接已建立 , open已经调用了
   2:请求已接收,也就是接收到头信息了
   3:请求处理中,也就是接收到响应主体了
   4:请求已完成,且响应已就绪,也就是响应完成了
 
   eg:

 //点击触发:

            document.getElementById("  ").onclick = function(){

     //要进行的异步操作。。。

}
     request.onreadystatechange = function(){
      if(request.readyState == 4  &&  request.status == 200){  // 返回的状态码
     //做一些事情
        request.responseText
   }
}

 

json 在线校验工具:jsonlint.com

json 格式是以键值对的形式组成 (键 和 值 都加双引号)。

eg : var  jsondate = '{"staff" : [{"name":"张三","age":"20"},{.......},{.......}]}';

 

方式一:

var  jsondata = 'json格式';

var  jsonobj = eval('(' +  jsondate  + ')');

alert(jsonobj.staff[0].name);   //   alert输出    张三

方式二:

var  jsondate = 'json格式';

var  jsonobj =  JSON.parse(jsondate);

alert(jsonobj.staff[0].name);

建议使用方式二,方式一如果把 “age”: “张三”  改成  “age”:“alert(123)” ,则会先弹出 123 ,再弹出 张三。

所以说方式一,不安全。除非自己能保证json的值是在自己的控制范围。

 

JQuery:

 

在线的jquery库:

<script  src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.js"></script>   //1.11.1 是版本号,可以改写成现有的版本号。

  界面加载完毕执行:

         $(document).ready(function(){

     //当鼠标点击事件,执行异步

     $("#id选择器").click(function(){

          //异步操作

          $.ajax({

         //执行异步  GET请求

         type:"GET",  

         url:" ....  ",

         dataType:"json",

          success:function(data){  //成功执行    因为 dataType 是json, 其实对data 已经做出了解析。

                        //如果成功,编写逻辑

                        if(data.success) {

                             $("#id选择器").html("成功");

                                                 } else{   

                             $("#id选择器").html("失败");                             

                                                          }        

                                            },

          error:function(jqXHR){  //失败执行   通过jqXHR对象,直接拿status。

                alert("发生错误: " + jqXHR.status);

                                   }

                   })

                                               })

                                                    });

 

 //POST请求

     $.ajax({

         //执行异步  POST请求

         type:"POST",  

         url:" ....  ",

         dataType:"json",

         data:{    //post 用data传数据

            //填写表单中的所有值

            eg:  name:$("#id选择器").val(),

                   .......        //这里拼接的是json格式,会自动转码

                },

          success:function(data){  //成功执行    因为 dataType 是json, 其实对data 已经做出了解析。

                        //如果成功,编写逻辑

                        if(data.success) {

                             $("#id选择器").html("成功");

                                                 } else{   

                             $("#id选择器").html("失败");                             

                                                          }        

                                            },

          error:function(jqXHR){  //失败执行   通过jqXHR对象,直接拿status。

                alert("发生错误: " + jqXHR.status);

                                   }

                   })

                                               })

                                                    });

 
  
   type :  类型 ,"POST" 或 "GET" ,默认为 "GET".    eg: type
  
   URL :  发送请求的地址。

   data :  是一个对象 , 连同请求发送到服务器的数据 。

   dataType :  预期服务器返回的数据类型。 如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,
一般我们采用json格式,可以设置为"json"。

   success : 是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串。

   error : 是一个方法,请求失败时调用此函数。传入XMLHttpRequest对象。

 

js获取 checkbox 的例子:

   

 var student = $("input[name='ids']:checked").serialize(); 
 var storeId = $("#storeId").val();       
    $.ajax({
         type : "post",
   url : 'homePageManager/homePageCategory/save?storeId='+storeId,
   dataType : "json", //返回数据形式为json
   data : ids = student ,
   success : function(result) {
   $.each(result, function(index, val) {
     $("#"+val.categoryId).prop("checked", "checked");
           });
   $checkbox.removeProp("checked");
   $("input[name='status']").bootstrapSwitch();
    }
       })

 

 

如有错误,请大神指出。。。。。

 

posted on 2017-02-08 20:47  <代码的世界>  阅读(114)  评论(0编辑  收藏  举报