Ajax使用详情

Ajax笔记


简介

不中断服务的情况下进行数据通信的技术;异步 相对来说对用户更友好


实际用法

针对于jsp页面

相关对象
var xhr = new XMLHttpRequest();
通过get或者post提交
通过open和服务器通信获取需要通信的控制类的方法
send发送方法需要用到的数据
用onreadystatusChange = function(){}去处理数据进行实际操作
用requestext拿到方法传过来的实际数据

针对于controller

写一个void类型的方法
HttpServletResponse当参数,传过来的数据当参数
进行处理
之后用
response.getWriter().write(String/char[]);
response.flushBuffer();

实际代码

//关于ajax发送请求和被数据相应的封装
//参数为get或者post提交方式,url实际url,param是传入方法的参数,success是function去处理数据(函数回调)
function ajaxutil(method , url ,param ,success){
var xhr = new XMLHttpRequest() ;
if(method.toUpperCase()=="GET"){
	xhr.open("GET", url+"?"+param);
	xhr.send();
}
else if(method.toUpperCase()=="POST"){
	xhr.open(method, url);
	xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	xhr.send(param);
	
}else{
	alert("请求参数错误");
}



xhr.onreadystatechange = function(){
	if(xhr.readyState==4&&xhr.status==200){
		var r = xhr.responseText;
		success(r);
	}
	
};


}

@RequestMapping("/getone1")
public void getone1(String id,HttpServletResponse response) throws Exception{
	System.out.println("id------"+id);
	User user = userS.getOne1(id);
	System.out.println("user-----:"+user);
	String jsonString = null ;
	if(user==null){
		user = new User();
		jsonString =JSON.toJSONString(user);
	}
	else{
		
		jsonString =JSON.toJSONString(user);
		
	}
	response.getWriter().write(jsonString);
	response.flushBuffer();
}

$("#mobile").on("blur",function(){
				var contentname = $("#mobile").val();
				console.log(contentname);
				ajaxutil("POST", "${pageContext.request.contextPath}/user/getone1.do", "id="+contentname, function(data){
					console.log(data);
					var r = JSON.parse(data);
					var e = $("#eee");
					if(r.mobile==contentname){
						$("#mobile").next().remove();
						e.append("<span style='color:red'>该手机号注册过</span>");
						
					}else{
					$("#mobile").next().remove();
						e.append("<span style='color:red'>该手机号未注册过</span>");
						
					}
				
				
				});
			
			});

状态码
status==200时能正常运行
工作状态
readystatus==4的时候响应到浏览器

相关JSON的使用


response.getWriter().write()方法只能传char数组和string类型的值
为了方便传值所以使用JSON
导入JSON相关的包
JSON.toJSONString(Object);
返回值是string类型的
在jsp页面的时候
再用JSON.parse(data)给转成String类型的就好

工作状态:

xhr.readyState=0 xhr初始化。
xhr.readyState=1 建立xhr和服务器端的连接
xhr.readyState=2 发送xhr的请求
xhr.readyState=3 服务器处理xhr的请求
xhr.readyState=4 服务器响应回到浏览器

xhr和服务器交互的状态码


浏览器--------服务器
服务器响应给浏览器的状态码:
404 服务器端没找到资源。
500 服务器代码运行异常
30X 服务器返回了Sendredirect命令,浏览器自动重定向。
200 服务器运行一切正常,且正常响应了结果给浏览器。





转载于:https://my.oschina.net/u/4051093/blog/2993805

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值