ajax封装

2019-08-22  本文已影响0人  AssertDo
            //封装ajax
            //1,methond:请求类型,post,get 不区分大小写
            //2,url:请求的地址
            //3,params:请求的参数,可以传对象
            //4,done:请求成功后的回调,传入请求结果处理的函数
            function ajax(method,url,params,done){
                
                //转大写
                method = method.toUpperCase();
                
                //1
                var xhr = new XMLHttpRequest();
                
                //参数可以传入对象
                if(typeof params == "object"){
                    var tempArr = [];
                     for (var key in params) {
                        var value = params[key];
                        tempArr.push(key + "=" + value);
                     }
                     params = tempArr.join("&");
                }
                
                if(method == "GET"){
                    url += "?" + params;
                }
                
                //2
                xhr.open(method,url);
                
                //设置请求头
                var  data = null;
                if(method == "POST"){
                    xhr.setRequestHeader("content-Type","application/x-www-form-urlencoded");
                    data = params;
                }
                
                
                
                //4
                xhr.onreadystatechange = function(){
                    
                    if(this.readyState != 4) return;
                    
                    done(this.responseText);
                };
                
                //3
                xhr.send(data);
                
            }

上一篇 下一篇

猜你喜欢

热点阅读