SOURCE

function createXMLHttpRequest() {
    var xmlHttp;
    try {
        // 适用于大多数浏览器(IE7+、Chrome、Firefox等)
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // 针对IE低版本浏览器(IE5、IE6)
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                // 浏览器不支持AJAX
                alert("您的浏览器不支持AJAX!");
                return null;
            }
        }
    }
    return xmlHttp;
}

// 定义发送请求的函数
function sendRequest(url) {
    // 1. 创建XMLHttpRequest对象
    var XMLHttpReq = createXMLHttpRequest();
    if (!XMLHttpReq) return; // 创建失败直接退出
    
    // 2. 打开请求(GET方式,true表示异步)
    XMLHttpReq.open("GET", url, true);
    
    // 3. 指定响应回调函数(把对象传给回调)
    XMLHttpReq.onreadystatechange = function() {
        processResponse(XMLHttpReq);
    };
    
    // 4. 发送请求(GET请求send(null))
    XMLHttpReq.send(null);
}

// 处理返回信息的回调函数(接收xhr对象)
function processResponse(XMLHttpReq) {
    // readyState=4表示数据完整返回,浏览器接收完毕
    if (XMLHttpReq.readyState == 4) {
        // 判断HTTP状态码是否为200(请求成功)
        if (XMLHttpReq.status == 200) {
            // 服务器响应的文本数据
            alert(XMLHttpReq.responseText);
        } else {
            // 页面异常
            alert("您所请求的页面有异常。状态码:" + XMLHttpReq.status);
        }
    }
}

// 发送请求
sendRequest("https://httpbin.org/get");
console 命令行工具 X clear

                    
>
console