ajax发送异步请求的四部操作
1.得到XMLHttpRequest
ajax只需掌握XMLHttpRequest
2.打开与服务器的连接
xmlHttp.open():用来打开与服务器的连接,它需要三个参数:
-
请求方式:GET或POST
-
请求的URL:指定服务器端资源,如:/day23 1/AServerlet
-
请求是否为异步:若为true表示发送异步请求,否则同步请求。
xmlHttp.open(“GET”,”/day23_1/AServer”,true);
xmlHTTP.open("POST","/day23_1/AServlet",true)
3.发送请求
GET:xmlHttp.send(null);
若不给出,可能会造成部分浏览器无法发送。
参数:即请求体内容,若为GET请求,必须给出null。
POST:
/*设置请求头*/
xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
/* 传参 */
xmlHttp.send("username=zhangsan&password=123");
4.监听器
- 在xmlHttp对象的一个事件上注册监听器:onreadystatechange
xmlHttp对象共有5个状态:
0状态:刚创建,还没有调用open()方法;
1状态:请求开始,调用了open()方法,但还没有调用send()方法;
2状态:调用完send()方法;
3状态:服务器已经开始响应,但不表示响应结束;
4状态:服务器响应结束;
- 得到xmlHttp对象的状态:
var state=xmlHttp.readyState;
- 得到响应的状态码:
var status=xmlHttp.status;
-
得到服务器响应的内容
var content=xmlHttp.responseText;//得到服务器的响应的文本格式内容; var content=xmlHttp.responseXML;//得到服务器响应的XML内容,即Document对象; xmlHttp.onreadystatechange=function(){//这是xmlHttp的5种状态都会调用的方法 if(xmlHttp.readystate==4&&xmlHttp.status==200){//双重判断:判断是否为4状态,且要判断是否为200//获取服务器的响应内容 var text=xmlHttp.reponseText; } };