在开发过程中,我们经常要进行前后端的数据交互,这是不可避免的。
下面我就慢慢教大家如何利用ajax让前后端交互起来。
ajax的缩写是:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。
而原始的ajax使用起来不方便,下面我们一起来学习学习如何使用jQuery的ajax。
jQuery对ajax进行了封装,让我们用起来十分的方便。这是几种常用的:$.ajax,$.post,$.get,$.getJSON的封装。
先来说说这几种的区别,$.ajax是最基础的,$.post和$.get只是分别使用了post和get的方式提交,其他都和$.ajax一样,$.getJSON限定了返回值类型,必须是json类型的。
下面我们就来仔细说说$.ajax,只要理解了这个,其他的都是差不多的。
常用参数:
type:规定用什么方式提交(post还是get),必须
url:请求的路径,必须
data:提交到后台的数据,可选
dataTpye:服务器数据返回的类型,如果不写默认为string,可选
async:true或者false,请求的方式是同步还是异步,不写默认为true(即异步),可选
success:成功回调函数
error:失败回调函数
下面我们来看一个具体的例子:
function login() {
var username = "username";
var password = 123456;
$.ajax({
type : 'POST',//请求的方式
url : '../login',//请求的路径
data : {//发向后台的数据,必须以json格式
"username" : username,
"password" : password,
},
//dataType:"json",//返回的数据类型
success : function(data) {//请求成功后执行的函数
var result = data;
},
error : function(data) {//请求失败后执行的函数
alert("异常!");
}
})
}
这里有几个需要注意的地方:
1.如果URL路径不对或者没有,后台会不能正确处理此请求,所有URL路径要写对
2.data必须要用json格式,不然后台无法解析
3.注意返回值类型,即dataType,这里是什么格式,就必须返回什么样格式的数据,比如这里是json格式,如果后台返回的不是json格式的就会出错
4.关于成功回调和失败回调,失败回调函数不是说你在登陆的时候密码不对这种,而是请求异常,如网络异常,数据格式,请求不到等异常情况,如果登陆的时候密码不对,只要程序正常执行,都是进入成功回调函数。
那么在数据从客户端传到服务器之后,我们又该怎么接受呢?
下面让我们一起来看看后台的代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//这里要注意字符集的转化,不然可能出现乱码问题
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//接受客户端发送的数据,注意这里是string类型的,
//而且参数必须和data数据域里面的字段对应
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);
//向客户端返回数据,这里返回的是string类型的
response.getWriter().write("成功");
}
以上就是通过ajax进行前后台的数据交互,只要理解了,相信大家用起来十分方便。