Ajax
Asynchronous Javascript And XML(异步JavaScript和XML);
获取Ajax请求对象
方式一:
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){//针对其他浏览器
xhr = new XMLHttpRequest();
}else{//针对低版本的ie浏览器
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
return xhr;
}
方式二:
var xhr;
try {
//如果是其它浏览器,这句代码可以成功,ajax对象就拿到了
xhr = new XMLHttpRequest();
} catch (e) {
//如果是IE,上面肯定会报错,被抓取,就执行下面这句代码(IE支持)
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
操作Ajax对象
var xhr = new XMLHttpRequest();
//重要字段
//请求的状态码
xhr.readyState
/*0 UNSENT 代理被创建,但尚未调用 open() 方法。
1 OPENED open() 方法已经被调用。
2 HEADERS_RECEIVED send() 方法已经被调用,并且头部和状态已经可获得。
3 LOADING 下载中; responseText 属性已经包含部分数据。
4 DONE 下载操作已完成*/
//接收请求参数
xhr.responseText
//请求的响应状态 200表示成功
xhr.status
//设置最大接收时间,毫秒
xhr.timeout
//上传进度
xhr.upload
//设置监听对象 相当于多线程开启一个接收对象
xhr.onreadystatechange
//方法
//设置请求参数
xhr.open("请求方式(get)","url");
//发送请求
xhr.send();
请求案例
//得到异步对象
var xhr=new XMLHttpRequest();
//设置请求
xhr.open("post","url");
//接收对象
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200){
//接收参数
var msg =xhr.responseText;
}
}
//发送请求
xhr.send();