我们在开发过程中,有需要用到不刷新页面,但是要去获取数据库的信息的时候,或者在获取后台信息,前台不会卡住等待的情况。这时候我们可以用ajax来做异步请求,ajax请求方法有很多,我下面着重去介绍常用的三个方法。
需要想要了解ajax的全部方法可以自己去查找Jquery的API帮助文档,里面有详细的介绍,但是我个人认为知道这三种就可以了。
下面方法中 url “”引号里面的参数,都是相应的servlet地址。也就是你的服务器地址。
一,这里我先给出js原生的ajax的代码(其实在真正开发中,我们一般都用jquery封装好的ajax)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">
function fn1(){
//1、创建ajax引擎对象 ---- 所有的操作都是通过引擎对象
var xmlHttp = new XMLHttpRequest();
//2、绑定监听 ---- 监听服务器是否已经返回相应数据
xmlHttp.onreadystatechange = function(){
//ajax有五个状态
//0:请求未初始化
//1:服务器连接已建立
//2:请求已接受
//3:请求处理中
//4:请求已完成,且响应已就绪
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
//5、接受响应数据
var res = xmlHttp.responseText;
//alert(res);
document.getElementById("span1").innerHTML = res;
}
}
//3、绑定地址 (第一个参数是请求方式,可以自己写成GET,或者POST)
xmlHttp.open("POST","/ajax/ajaxServlet",true);
//4、发送请求
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send("name=wangwu");
}
</script>
<body>
<input type="button" value="异步访问服务器" onclick="fn1()"><span id="span1"></span><br/>
</body>
</html>
二,Jquery的ajax的post和get方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
<script type="text/javascript">
function fn1() {
//get异步访问
$.get(
"/ajax/ajaxServlet2", //url地址
{"name":"张三","age":25}, //带给服务器的参数
function(data){ //成功后的回调函数
//data 是服务器返回的参数
alert(data.name);
},
"json" //返回数据data的类型
);
}
function fn2() {
//post异步访问
$.post(
"/ajax/ajaxServlet2", //url地址
{"name":"张三","age":25}, //带给服务器的参数
function(data){ //成功后的回调函数
alert(data.name);
},
"json" //返回数据data的类型
);
}
</script>
<body>
<input type="button" value="get访问服务器" onclick="fn1()"><span id="span1"></span><br/>
<input type="button" value="post访问服务器" onclick="fn2()"><span id="span2"></span><br/>
</body>
</html>
三、jquery的ajax的ajax方法(我建议就只需要记住这一个方法就好了,我们可能需要get和post不同的请求方式,但是在这个ajax方法里面,我们都可以去配置,下面代码我只配置了最基本的属性,如果需要其他的属性的,请自行去看api)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript" src="jquery-1.11.3.min.js"></script>
<script type="text/javascript">
function fn3() {
//ajax异步访问
$.ajax({
url:"/ajax/ajaxServlet2", //url地址
async:true, //是否是异步请求
type:"POST", //请求方式
data:{"name":"张三","age":25}, //带给服务器的参数
//服务器获取可以用 (这里给出java的方式)
//String parameter = request.getParameter("name");
success:function(data){ //成功后的回调函数
//data 是服务器返回的参数
alert(data.name);
},
dataType:"json" //返回数据data的类型
});
}
</script>
<body>
<input type="button" value="ajax访问服务器" onclick="fn3()">
</body>
</html>