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

原生封装一个类似于JQ的ajax方法

时间:2018-12-08 14:44:40      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:move   XML   class   key   response   hang   xhr   .data   remove   

function $ajax(json){
    //初始化参数
    if(!json){
        return;
    }
    json.type = json.type || ‘GET‘;
    json.url = json.url || "";
    json.async = json.async || true;
    json.data = json.data || {};
    json.succeed = json.succeed || function(){}
    
    if(json.dataType=="jsonp"){
        
        var oScript=document.createElement("script")
        oScript.src=json.url
        document.body.appendChild(oScript);
        oScript.remove()
        return
    }
    //将json.data对象转为符合传递参数的格式
    var arr = [];
    for(var key in json.data){
        arr.push(key + ‘=‘ + json.data[key]);
    }
    var str = arr.join(‘&‘);
    alert(str);
    var xhr = new XMLHttpRequest();
    if(json.type.toUpperCase() === ‘GET‘){
        xhr.open(json.type,json.url + "?" + str,json.async);
        xhr.send();
    }else if(json.type.toUpperCase() === ‘POST‘){
        xhr.open(json.type,json.url,json.async);
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=utf-8");
        xhr.send(str);
    }
    xhr.onreadystatechange = function(){
        if(xhr.readyState === 4 && xhr.status === 200){
            json.succeed(xhr.responseText);
        }
    }
}

 

原生封装一个类似于JQ的ajax方法

标签:move   XML   class   key   response   hang   xhr   .data   remove   

原文地址:https://www.cnblogs.com/zzkxjh/p/10087558.html

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