用promise简单封装一个ajax请求

用promise简单封装一个ajax请求

function ajax({
    
    url,type,data,dataType}){
    
    
    // url:地址,type:请求类型post/get,data:数据,dataType:json/text
    return new Promise(function(open,err){
    
    
        // 1.创建xhr对象
        var xhr=new XMLHttpRequest();
        //2.绑定事件监听对象
        xhr.onreadystatechange = function() {
    
    
            if(xhr.readyState === 4 && xhr.status === 200 ) {
    
    
                if(dataType != undefined && dataType.toLowerCase() == "json") {
    
    
                    var res = JSON.parse(xhr.responseText)
                } else {
    
    
                    var res = xhr.responseText;
                }
                open(res);
            }
        }
        //请求为get,参数不为空的时候
        if(type.toLowerCase() == "get" && data != undefined) {
    
    
            // 拼接到地址栏里
            url+="?"+data;
        }
        //3.打开连接
        xhr.open(type,url,true);
        if(type.toLowerCase() == "get") {
    
    
            xhr.send(null);
        } else if(type.toLowerCase() == "post") {
    
    
            //增加消息头
            xhr.setRequestHeader("Content-Type","application/X-www-form-urlencoded");
            xhr.send(data);
        }
    })
}

猜你喜欢

转载自blog.csdn.net/weixin_45324044/article/details/114881977