美文网首页
Ajax兼容

Ajax兼容

作者: 聽說_0100 | 来源:发表于2018-11-18 16:30 被阅读0次
    function Ajax(type, url, data, success, failed){
        // 创建ajax对象
        let xhr = null;
        if(window.XMLHttpRequest){
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject('Microsoft.XMLHTTP')
        }
    
        type = type.toUpperCase();  //转化为大写
        // 用于清除缓存
        let random = Math.random(); //为了防止浏览器缓存
    
        if(typeof data == 'object'){
            var str = '';
            for(var key in data){
                str += key+'='+data[key]+'&';
            }
            data = str.replace(/&$/, '');
        }
    
        if(type == 'GET'){
            if(data){
                xhr.open('GET', url + '?' + data, true);
            } else {
                xhr.open('GET', url + '?t=' + random, true);
            }
            xhr.send(null);
    
        } else if(type == 'POST'){
            xhr.open('POST', url, true);
            // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send(data);
        }
    
        // 处理返回数据
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if((xhr.status >= 200&&xhr.status<300)||xhr.status==304){
                    success(xhr.responseText);
                } else {
                    if(failed){
                        failed(xhr.status);
                    }
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Ajax兼容

          本文链接:https://www.haomeiwen.com/subject/qkygfqtx.html