码迷,mamicode.com
首页 > Web开发 > 详细

ajax学习

时间:2019-11-15 20:03:16      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:open   mic   active   typeof   state   test   object   ext   uppercase   

封装原生js ajax函数

function ajax(type,url,data,callback){
    var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
    if(typeof data == "object"){
        var str = ""
        for(var key in data){
            str += `${key}=${data[key]}&`
        }
        data = str.slice(0,str.length - 1)
    }
    type = type.toUpperCase()
    if(type == "GET"){
        if(data){
            xhr.open("GET",`${url}?${data}`,true)            
        }else{
            xhr.open("GET",url,true)
        }
        xhr.send()
    }else if(type == "POST"){
        xhr.open(‘POST‘,url,true)
        if(data){
            xhr.send(data)
        }else{
            xhr.send()
        }
    }else{
        return "error"
    }
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4){
            var res = xhr.responseText
            callback?callback(
                function(){
                    return res
            }()):""
        }
    }
}

调用代码

ajax("get","./test.txt",null,function(response){
            console.log("dosomething....")
            var res = response
            console.log(res)
});

输出结果

技术图片

 

ajax学习

标签:open   mic   active   typeof   state   test   object   ext   uppercase   

原文地址:https://www.cnblogs.com/gehaoyu/p/11869192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!