AJAX异步请求入门与json数据格式

本文深入讲解AJAX技术,包括原始版和jQuery版的异步请求方法,GET与POST请求的区别,以及JSON数据格式的处理。通过实例展示了如何使用AJAX进行高效的数据交互,提升用户体验。

前言
当页面html/jsp请求servlet想要获取一点点数据时常常会获取整个页面,这种请求是一种同步请求方式
而AJAX则可以实现只更新那一小部分页面,无需请求整个页面,不会导致请求时出现页面空白间隙时间过长(加载缓慢),大大的提高了用户使用感
AJAX原始版
js内异步请求发送方式

//1.创建XMLHttpRequest对象
function yibu(){
	var xmlhr;
	if(window.XMLHttpRequest){
		//IE7以上 创建对象
		xmlhr=new XMLHttpRequest();
		  
	}else{
		//IE7以下创建对象
		xmlhr=new ActiveXObject("Microsoft.XMLHTTP");
	}
	var stu_name=document.getElementById("aa").value;
//2.open方法 确定参数  1/请求方式  	 2/路径与数据  	3/是否异步
	xmlhr.open("get", "show.do?stu_name="+stu_name, true);
//3.send方法 发送
	xmlhr.send(null);
};

servlet内异步请求响应方式

			//异步请求响应方式
			response.getWriter().write(str);

js内接受servlet响应的数据

xmlhr.onreadystatechange=function(){
//readyState 状态属性 status 响应码
	if(xmlhr.readyState==4&& xmlhr.status==200){
	//得到servlet响应的数据
		var str=xmlhr.responseText;
		if(str=="true"){
			document.getElementById("a").innerHTML="改用户名可用";
			document.getElementById("b").innerHTML="";
		}else{
			document.getElementById("a").innerHTML="";
			document.getElementById("b").innerHTML="改用户名不可用";
		}
	}
};

jQuery版异步请求ajax版
jQuery版先导包

var stu_name=$("#aa").val();
	$.ajax({
		type:"get",
		url:"show.do?stu_name="+stu_name,
		//预期服务器返回的数据类型
		dataType:"text",
		//msg为从servlet内响应获取的数据
		success:function(msg){
			if(msg=="true"){
				$("#a").text("账户可用");
				$("#b").text("");
			}else{
				$("#a").text("");
				$("#b").text("账户不可用");
			}
		}
		
	});

get请求版

var data={"stu_name":$("#aa").val()};
	get("show.do",data,function(msg){
		if(msg=="true"){
			$("#a").text("1账户可用");
			$("#b").text("");
		}else{
			$("#a").text("");
			$("#b").text("账户不可用");
		}
	});

post请求版

var data={"stu_name":$("#aa").val()};
	$.post("show.do",data,function(msg){
		if(msg=="true"){
			$("#a").text("账户可用");
			$("#b").text("");
		}else{
			$("#a").text("");
			$("#b").text("账户不可用");
		}
	});

json数据格式

json格式对象 {变量名:值,变量名:值};
json数组

			var a=[
	      		 {"stu_id":"1001","stu_name":"{'stu_id':'1003','stu_name':'王五'}","stu_sex":"男"},
	      		 {"stu_id":"1002","stu_name":"李四","stu_sex":"女"}
	       ];

字符串转为json对象

	//字符串转为json对象
	var b=eval("("+a[0].stu_name+")")

servlet内打包json数组,先导json包

			List<StuInfo> list=new StuInfoDAO().findAll();
			//打包为json数组
			String str=JSONArray.fromObject(list).toString();
		//打包成json对象
		String str=JSONObject.fromObject(stu).toString();
		//在java内如何从一个json对象中取数据
		JSONObject o=JSONObject.fromObject(str);
		String stu_id=o.getString("stu_id");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值