<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <script>
        function createXHR() {
            if (typeof XMLHttpRequest != 'undefined') { // IE7+、Firefox 、Opera、Chrome和Safari 都支持原生的XHR对象
                return new XMLHttpRequest()
            } else if (typeof ActiveXObject != 'undefined') {
                if (typeof arguments.callee.activeXString != 'string') {
                    var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
                                    "MSXML2.XMLHttp"],
                        i, len;
                    for (i = 0, len = versions.length; i < len; i++) {
                        try {
                            new ActiveXObject(versions[i])
                            arguments.callee.activeXString = versions[i]
                            break
                        } catch(ex) {
                        }
                    }
                }
                return new ActiveXObject(arguments.callee.activeXString)
            } else {
                throw new Error('No XHR object available.')
            }
        }
        var xhr = createXHR()
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
                    console.log(xhr.responseText)
                    var allHeaders = xhr.getAllResponseHeaders()
                    console.log(xhr.getResponseHeader('Last-Modified'))
                    console.log(allHeaders)
                } else {
                    console.log('Request was unsuccessful: ' + xhr.status)
                }
            }
        }
        var url = 'http://static01.baomihua.com/js/lib/jquery-1.4.4.min.js?t=20120926.js' // js文件
        var url = 'http://static01.baomihua.com/text.txt' // txt文件
        xhr.open('get', url, true)
        xhr.setRequestHeader('MyHeader', 'MyValue') // 发送给服务器端,服务器端返回什么是另外一回事
        xhr.send(null)
        /**
         * responseText 作为响应主体被返回的文本
         * responseXML 如果响应的内容类型是 "text/xml"或"application/xml",这个属性中将保存包含着响应数据的XML DOM 文档
         * status 响应的HTTP状态
         * statusText HTTP状态的说明
         * readyState 该属性表示请求/响应过程的当前活动阶段 
         * 状态代码为304 表示请求的资源并没有被修改,可以直接使用浏览器中缓存的版本
         *
         * 使用GET 请求经常会发生的一个错误,就是查询字符串的格式有问题。
         * 查询字符串中每个参数的名称和值都必须使用encodeURIComponent()进行编码,然后才能放到URL 的末尾;
         * 而且所有名- 值对儿都必须由和号(&)分隔
         */
    </script>
</body>
</html>