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>       

  

猜你喜欢

转载自www.cnblogs.com/hjcblog/p/9025521.html
今日推荐