美文网首页
ajax函数封装

ajax函数封装

作者: 大家好我系渣渣灰 | 来源:发表于2018-10-25 20:01 被阅读0次

    //ajax封装
    /obj={
    type: 提交方式 string "",
    url: 请求道服务器路径 string "",
    async: 是否异步 布尔吉,
    data:请求参数 json对象 {"key":"val"},
    success:请求成功后的回调函数 function(d){},
    fail:请求失败后的回调 function(err){} 可选填
    }
    /

    function $ajax(obj){
        var xhr=null
        try{
            xhr=new XMLHttpRequest()
        }catch(er){
            xhr=new ActiveXObject("Microsoft XMLHTTP")
        }
        if(obj.type.toLowerCase()=="get"&&obj.data){    //当传请求参数时就进行路劲拼接
            obj.url=obj.url+"?"+toUrl(obj.data);
        }
        xhr.open(obj.type,obj.url,obj.async);
        if(obj.type.toLowerCase()=="get"){
            xhr.send()
        }else if(obj.type.toLowerCase()=="post"){
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
            xhr.send()
        }
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                obj.success&&obj.success(JSON.parse(xhr.responseText))
            }else{
                obj.fail&&obj.fail(xhr.status+"错误") //
            }
        }
        function toUrl(obj){    //此函数只用于 将obj中的data对象拼接成 key=val&key2=val
            var arr=[]
            for(var attr in obj){
                arr.push(attr+'='+obj[attr])
            }
            return arr.join("&")
        }
    }
    

    相关文章

      网友评论

          本文标题:ajax函数封装

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