我们在开发过程中,有需要用到不刷新页面,但是要去获取数据库的信息的时候,或者在获取后台信息,前台不会卡住等待的情况。这时候我们可以用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>