Ajax简单的来说就是一个JavaScript的异步请求,用来获取后台服务端的数据。
在JS中来实现Ajax主要类就是XMLHttpRequest。
它的使用一般分为四个步骤:
1.创建XMLHttpRequest对象;2.准备发送网络请求;3.开始发送网络请求;4.指定回调函数;
一.GET请求
//1.创建XMLHttpRequest对象
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
//兼容低版本IE浏览器
xhr = new ActiveXObject('Microsoft.XMLHTTP')
}
//2.准备发送,true代表异步,false代表同步。如果不设置默认为异步
xhr.open("get","url",true);
//3.执行发送
xhr.send(null);
//4.设置回调函数
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var result = xhr.responseText;
console.log(result);
}
}
};
二.POST请求
//1.创建XMLHttpRequest对象
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
//兼容低版本IE浏览器
xhr = new ActiveXObject('Microsoft.XMLHTTP')
}
//2.准备发送,true代表异步,false代表同步。如果不设置默认为异步
xhr.open("post","url",true);
//3.执行发送
var param = "请求参数" //对于post请求,应将参数放入请求体中
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//设置xhr请求头信息,仅限于post请求使用
xhr.send(param);
//4.设置回调函数
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var result = xhr.responseText;
console.log(result);
}
}
};
PS : 如果不需要兼容低版本浏览器(IE6,7,8),可以直接使用 var xhr = new XMLHttpRequest()
三.xhr.readyState参数含义
参数值 | 含义 |
---|---|
xhr.readyState=0 | 表示xhr对象创建完成 |
xhr.readyState=1 | 表示已经发送了请求 |
xhr.readyState=2 | 浏览器已经收到了服务器响应的数据 |
xhr.readyState=3 | 正在解析数据 |
xhr.readyState=4 | 数据解析完成,可正常使用。实际开发中通常只关心此状态 |
四.xhr.status常见状态码
参数值 | 含义 |
---|---|
xhr.status=200 | 表示响应成功 |
xhr.status=404 | 表示没有找到请求的资源 |
xhr.status=500 | 服务器端错误 |