异步
在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。这个时候可能由于种种原因导致服务器还没有响应我们的请求,但是因为我们采用了异步执行方式,所有包含AJAX请求代码的函数中的剩余代码将继续执行。如果我们是将请求结果交由另外一个JS函数去处理的,那么,这个时候就好比两条线程同时执行一样
分4点
1,New一个XHR对象
var obj;
//1.创建ajax对象
var xmlHttp = new XMLHttpRequest();
2,对过程进行监听,来知道服务器是不是正确的做出了响应。
xmlHttp.onreadystatechange = function(){
//判断数据是否正常返回
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){ // 0.0001 - 很长时间
//6.接收数据
var res = xmlHttp.responseText;
// 转成json对象
obj = JSON.parse(res);
document.getElementById('name').innerHTML = obj.name;
document.getElementById('age').innerHTML = obj.age;
}
3,调用了open方法
//3.绑定处理请求的地址,true为异步,false为同步
//GET方式提交把参数加在地址后面?key1:value&key2:value
xmlHttp.open("POST","b.php");
//4.POST提交设置的协议头(GET方式省略)
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//POST提交将参数,如果是GET提交send不用提交参数
send发送请求
xmlHttp.send("name=aaa&age=18");
// 同步设置成fasle, 必须等ajax全部处理完,后面的代码才执行
// 异步设置成true, 默认就是true,不用等ajax执行结果,下面的代码直接执行
console.log(obj);