let xmlHttp = new XMLHttpRequest();//创建发送请求的对象
//这是为了兼容IE的获取ajac请求对象的方法
// let getXmlHttpRequest = function () {
// if (window.XMLHttpRequest) {
// //主流浏览器提供了XMLHttpRequest对象
// return new XMLHttpRequest();
// }
// else if (window.ActiveXObject) {
// //低版本的IE浏览器没有提供XMLHttpRequest对象
// //所以必须使用IE浏览器的特定实现ActiveXObject
// return new ActiveXObject("Microsoft.XMLHTTP");
// }
// };
xmlHttp.open('GET','https://www.baidu.com');//设置请求的地址和方法
xmlHttp.send();//发送请求
//xmlHttp请求的状态有五种0,1,2,3,4。所以这个状态改变的回调函数会执行四次,即0变为1、1变为2、2变为3、3变为4
//当var xmlHttp = new XMLHttpRequest();这句执行完后,xmlHttp.readyState为0,表示对象存在
//调用open方法根据参数完成对象设置,并调用send方法发送请求,这时候xmlHttp.readyState为1,表示正在向服务端发送请求
//当send方法执行完成后,接收完全部的返回数据,xmlHttp.readyState为2
//接收完数据后进行解析,根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,这时候xmlHttp.readyState为3
//响应内容解析完成,可以在客户端调用了,xmlHttp.readyState为4
xmlHttp.onreadystatechange=()=>{//当请求的状态发生改变的时候调用回调函数
//我们只看请求完成后的情况,因为就算请求失败了,它最终的状态也会变为4,比如请求一个不存在的网页
if(xmlHttp.readyState==4){
console.log('请求流程执行完了...');
//console.log(xmlHttp.status);
//请求的过程走完之后我们还需要通过判断请求的状态码xmlHttp.status来看请求是否成功,常用的状态码和含义
//200:请求成功(后台处理结果ok)、303:重定向
//400:请求错误、401:未授权、403:禁止访问、404:文件未找到
//500:服务器错误
if(xmlHttp.status==200){
let response = xmlHttp.responseText;//获取响应的内容,以文本的方式
console.log('请求成功');
}else{
console.log(`请求失败:${xmlHttp.status}`);
}
}
};