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

//模拟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);

}


摇曳的蔷薇
浏览 596回答 2
2回答

qq_花开花谢_0

可以参考Ajax入门(二)Ajax函数封装,建议一开始不要追求与jQ的API相同,先实现功能~

小怪兽爱吃肉

//模拟jQuery封装ajax 暂不考虑跨域和默认返回数据类型为JSONfunction 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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript