在js中实现ajax
>AJAX的所有操作都是围绕着XMLHttpRequest对象进行
>在XMLHttpRequest对象中封装发送给服务器请求报文,同时在服务器发回响应时,响应信息也会在对象中封装
【1】操作ajax流程
1、获取XMLHttpRequest对象 var xhr = new XMLHttpRequest();
2、设置请求信息(请求地址,请求方式,请求参数)xhr.open(请求方式,请求地址);
3、发送请求xhr.send(请求体);
>>get请求没有请求体,所以send中可以传null或什么都不传
>>post请求需要通过send来设置请求参数
4、接收响应信息
//如果信息为纯文本 xhr.responseText
//如果信息为XML xhr.responseXML
XMLHttpRequest对象三个重要属性
①onreadystatechange每当readyState属性改变,调用此函数
②readyState存有XMLHttpRequest的状态
>>0:请求未初始化
>>1:服务器连接已建立
>>2:请求已接收
>>3:请求处理中
>>4:请求已完成,响应已就绪
③status:200 OK
400 未找到页面
【2】json数据格式
1、键和值使用:连接,多个键值对之间使用,分开,注意如果是最后一组键值对,则千万不要在加,
{
"属性名1":属性值1,
"属性名2":属性值2,
"属性名3":属性值3,
"属性名4":属性值4
}
2、JS中使用JSON
JSON对象 --> JSON字符串 JSON.stringify(对象)
JSON字符串 --> JSON对象 JSON.parse(JSON字符串)
3、后台Gson转JSON
//将普通对象转为json字符串
gson.toJson();
【3】Jquery中使用请求
$.post(url, [data], [callback], [type])
参数:
- url:发送AJAX的请求地址,字符串。
- data:发送给服务器的请求参数,JSON格式。
- callback:当前需要获取服务器发送的响应时,我们可以通过该回调函数。
- type:响应信息的类型,字符串。一般两个常用值text、json
$(function(){
$("#btn").click(function(){
var url="${pageContext.request.contextPath}/Aservlet?t="+Math.random();
var name={"name":"zhangsan","password":"123"};
$.get(url,name,function (data){
var json=JSON.parse(data);
$("#div01").html(json.password);
});
})
});