AJAX(异步处理)
1.Ajax
异步的js和xml
2.同步交互和异步交互
1.同步
发送一个请求要等待服务器响应结束才可以进行下一个请求
刷新的是整个界面
2.异步
发送一个请求,无需等待服务器请求直接进行下一个请求
可以使用js接受服务器的响应,使用js局部刷新
3.ajax请求
第一步:(得到XMlHttpRequest)
ajax只需要一个对象XMlHttpRequest,
Var xmlHtml = new XMlHttpRequest();
少数浏览器
Var xmlHtml= new ActiveXObject(“Msxml12.XMLHTTP”);
Var xmlHtml= new ActiveXObject(“Microsoft.XMLHTTP”);
第二步:(得到和服务器的链接)
xmlHttp.open():三个参数
—>请求方式,post,get
—>请求的URL,指定是想服务器的那个servlet发送请求
—>请求是否为异步 true-是
第三步:(发送请求)
Xmlhttp.send(null):必须要给参数
参数:就是请求体类容,get的时候必须为null。
第四步:(得到响应)
在xmlHttp对象的上面注册监听器onreadystatechange
第五步:(得到状态)
状态码:
0:刚创建,还没有调用open()方法;
1:请求开始,调用了open()方法,但是没有调用send()方法;
2:调用完了send()方法;
3:服务器开始响应,但不表示响应结束
4:服务器响应结束(通常只关心这个状态)
得到状态码:
Var state = xmlHttp.readyState();可能是01234;
得到服务器的响应状态码
Var status =xmlHttp.status ; 可能是202 404
得到服务器响应内容
Var content =xmlHttp.responseText;得到的为文本可是
Var content =xmlHttp.responseXML;得到的是xml响应内容
当xmlHttp.readyState()=4 并且xmlHttp.status=200的时候证明成功,可以获得服务器响应文件
4.post请求(发送请求需要带参数)
xmlHttp.open(“POST”..);
需要添加一步
xmlHttp.setRequestHeader(“Content-type”,”application/x-www-form-urlencoded”);
xmlHttp.send(“username=”xx”,password=”x”);//发送的内容