模拟jQ封装ajax,调用时出现Uncaught ReferenceError: param is not defined

//模拟jQuery封装ajax 暂不考虑跨域和默认返回数据类型为JSON
function ajax(obj){
    var temp={
        type:'get',
        url:"#",
        data:{},
        success:function(param){console.log(param)}
    };

    for(var key in obj){
        temp[key]=obj[key];
    }

    var data='';
    for(var key in temp.data){
        data+=`${key}=${temp.data[key]}&`;
    }
    if(data){
        data=data.substr(0,data.length-1);
    }
    var xhr=new XMLHttpRequest();
    xhr.onreadystatechange=function(){
        if(xhr.readyState===4){
            if(xhr.status===200){
                var param=JSON.parse(xhr.responseText);
                temp.success(param);
            }
        }
    };
    var main=null;
    if(temp.type==='get'){
        temp.url+="?"+data;
    }else{
        main=data;
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    xhr.open(temp.type,temp.url,true);
    xhr.send(main);
}
阅读 5.8k
2 个回答

//模拟jQuery封装ajax 暂不考虑跨域和默认返回数据类型为JSON
function ajax(obj){

var temp={
    type:'get',
    url:"#",
    data:{},
    success:function(param){console.log(param)}
};

for(var key in obj){
    temp[key]=obj[key];
}

var data='';
for(var key in temp.data){
    data+=`${key}=${temp.data[key]}&`;
}
if(data){
    data=data.substr(0,data.length-1);
}
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function(){
    if(xhr.readyState===4){
        if(xhr.status===200){
            var param=JSON.parse(xhr.responseText);
            temp.success(param);
        }
    }
};
var main=null;
if(temp.type==='get'){
    temp.url+="?"+data;
}
xhr.open(temp.type,temp.url,true);
if(temp.type==='post'){
    main=data;
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded,charset=UTF-8 ');
}
xhr.send(main);

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题