zoukankan      html  css  js  c++  java
  • 封装一个原生的ajax方法(保存方法^_^)

    /*
        封装一个类似于jq的ajax方法,调用与下面类似
        $.ajax({
            url:xxx.php,
            data:{
                'act':'q',
                'user':'ghost',
                'password':'123abc',
            },
            type:'post',
        })
    */
    function jsonToUrl(data){//将json数据变成url格式
        var arr=[];
        for(var i in data){
            arr.push(i+'='+data[i]);
        }
        return arr.join('&');
    }
    
    function ajax(json){
        json=json||{};
        if(!json.url){
            return;
        }
        json.data=json.data||{};
        json.type=json.type||"get";
    
        var xhr=null;
        if(window.XMLHttpRequest){
            xhr=new XMLHttpRequest()
        }else{
            xhr=new ActiveXObject("Microsoft.XMLHTTP");
        }
    
        if(json.type=='get'){
            xhr.open('GET',json.url+'?'+jsonToUrl(json.data),true);
            xhr.send();
        }else{
            xhr.open('POST',json.url,true);
            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//post方法需要添加请求头
            xhr.send(jsonToUrl(json.data));
        }
    
    
        xhr.onreadystatechange=function(){//监听
            if(xhr.readyState==4){
                if(xhr.status==200){
                    json.success && json.success(xhr.responseText);
                }else{
                    json.fail && json.fail(xhr.status);
                }
            }
        }
    }
  • 相关阅读:
    期中考试补完计划
    c++简单程序设计-4
    c++简单程序设计-3
    c++简单程序设计-2
    c++简单程序设计-1
    layer ifram 弹出框
    定时发邮件
    二维码生成
    文件或文件夹的压缩
    excel 导入 与 导出
  • 原文地址:https://www.cnblogs.com/momomiji/p/8503058.html
Copyright © 2011-2022 走看看