zoukankan      html  css  js  c++  java
  • JQuery中Ajax的基本用法

    一、JSON对象与JSON字符串
    JSON:轻量级的数据交换格式
    1、JSON对象:JSON对象就是键值对的集合,键与值之间用:分隔,多对键值对之间用,分隔
    注意:JSON对象,要求键必须使用""包裹的字符串。''无效!!!
    2、JSON字符串:将JSON对象,用字符串的形式进行包裹。

    3、JSON对象与JSON字符串的相互转换:

      ① 对象-->字符串 JSON.stringify(obj)
      ② 字符串-->对象 JSON.parse(jsobj)

    JQuery也提供了字符串转对象的方法:$.parseJSON(jsobj);

    4、JSON数组:将多个JSON对象组成数组的形式存放
    JSON数组可以和JSON对象相互嵌套,也就是说JSON对象的值可以是JSON数组。

    .load():选中当前页面的一个DOM节点,并在当前DOM节点中加载一块HTML代码片段:
    接受参数:
      ① 可以是一个HTML文件的地址,表示将整个的html文件加载到当前区域:
        $("div1").load("test.html");
      ② 可以是一个html文件+各种选择器,表示选择该页的指定区域进行加载
        $("#div1").load("test.html",h1,"ul",function(){alert("完成")});

    二、$.ajax();是JQuery中最底层的ajax函数。参数接受一个大对象,用对象的键值对表示ajax请求的相关设置:
    ① type:表示Ajax请求的方法,可以get和post
    ② url:表示请求的后台URL地址
      $.ajax({
        type:"get",
        url:"java1801.json",
      data:{
      "name":"张三"
      },
      async:true,
      }

    ③ success:表示请求成功的回调函数。回调函数将接受三个参数,其中第一个参数是请求成功返回的数据。
      success:function(data,textStatus,jqXHR){
        var obj=JSON.parse(data);
        console.log(obj);
        console.log(data);
        console.log(textStatus);
        console.log(jqXHR);
        console.log(jqXHR.responseText);
        console.log(jqXHR.responseXML);
      },
    使用数据时需注意:返回的对象是JSON字符串,还是JSON对象。
    ④ error:表示请求失败时,执行的回调函数。
      error:function(XMLHttpRequest,textStatus,errorThrow){
        console.log(XMLHttpRequest);
        console.log(textStatus);
        console.log(errorThrow);
      }
    ⑤ complete:请求完成后,无论成功失败都会执行的函数
      complete:function(XHR,TS){
        console.log(XHR.status);
        console.log(TS);
      }
    ⑥ statusCode: 接收一个对象,对象的键是各种status状态,对象的值表示每种状态码对应的回调函数。
      [常见状态码]
        200-请求成功
        404-页面没找到
        500-服务器错误
        403-访问被拒绝

      statusCode:{
        200:function(){
        console.log("请求成功");
      },
        404:function(){
        console.log("页面没找到");
        }
      }
    ⑦ async:设为true表示异步请求(默认),设为false表示同步请求

    ⑧ data:请求时,向后台传递的数据,是一个对象类型,以键值对的形式分别表示name:value。

    ⑨ dataType:预期服务器返回的数据类型。常见json、text、html

    ⑩ timeout:设置请求超时时间。

    三、JS同源策略
    在JS中当请求其他文件时,要求被请求文件与当前文件,必须处于同一协议名、同一主机名、同一端口号下。
    否则,请求将不能成功!!如果要请求非同源文件,必须进行跨域请求设置

      $(function(){
        $.get("java1801.json",{name:"zhangsan"},function(data){
        console.log(data);
      },"json");

    四、ajax中用于检测页面所有Ajax的状态,并执行回调函数的方法

      ajaxComplete(callback)
      ajaxError(callback)
      ajaxSend(callback)
      ajaxStart(callback)
      ajaxStop(callback)
      ajaxSuccess(callback)


    五、表单序列化为字符串
      $("form input[type='button']:eq(0)").on("click",function(){
        //var str=$("form:eq(0)").serialize();
        //console.log(str);
        var userName=$("form input[name='userName']:eq(0)").val();
        var pwd=$("form input[name='pwd']:eq(0)").val();
        var obj={
          "userName":userName,
          "pwd":pwd
        };
        console.log(JSON.stringify(obj));
      });

    六、表单序列化为数组
      $("form input[type='button']:eq(1)").on("click",function(){
        var arr=$("form:eq(0)").serializeArray();
        var obj={};
        arr.forEach(function(item,index){
          obj[item.name]=item.value;
        });
        console.log(JSON.stringify(obj));
      });

    七、validate插件的使用
     插件下载:http://www.runoob.com/jquery/jquery-plugin-validate.html
     实例代码

    <head>
    	<meta charset="UTF-8">
    	<title></title>
    	<style type="text/css">
    		.cls{
    			color: red;
    			font-size: 12px;
    		}
    	</style>
    	<script src="js/jquery-1.10.2.js"></script>
    	<script  src="js/jquery.validate.js"></script>
    	<script  src="js/messages_zh.min.js"></script>		
    </head>
    <body>
    	<form id="form">			
    		用户名:<input type="text" name="userName"/><br/>
    		密码:<input type="password" name="password" id="pwd"/><br/>
    		确认密码:<input type="password" name="confirm_password" id="confirm_password"/><br/>
    		邮箱:<input type="text" name="email"/><br/>
    		<input type="submit" value="提交"/><br/>
    	</form>
    	<script type="text/javascript">
    		$("#form").validate({
    			errorPlacement: function(error, element) {  
       				error.insertAfter(element);
       				error.css({
    					"color": "red",
    					"fontSize": "12px",
    					"position":"absolute",
    					"right":"0px"
    				})					
    		},				
    //		errorClass:"cls",
    		rules:{
    			userName:{
    				required:true,
    				rangelength:[3,16]
    			},
    			password:{
    			        required:true,
            	                minlength:5
    			},
    			confirm_password:{
    			        required:true,
            		        minlength:5,
    				equalTo:"#pwd"
    			}
    		},
    		messages:{
    			confirm_password:{
    			     equalTo: "两次密码输入不一致"
    			}
    		}
    	});
    	</script>
    </body>       
    

      

  • 相关阅读:
    iframe中的页面如何触发父页面事件
    js获取gridview的值
    不出现重复数字,带干扰的验证码
    文本框内不允许输入字母
    后台调用前台JS方法
    在后台得到前台元素,给元素改变属性值或添加属性
    C#常见面试题
    Flex代码生成器 (FCG)
    c#(WinForm)遍历局域网计算机(电脑)获取IP和计算机名称
    VisualSVN Server + Tortoise SVN 使用教程(补充版)
  • 原文地址:https://www.cnblogs.com/hjcblog/p/9025521.html
Copyright © 2011-2022 走看看