1. 程式人生 > >原生Javascript 封裝 ajax ----五部曲

原生Javascript 封裝 ajax ----五部曲

/*原生js ajax begin*/
//ajax get五部曲
function ajax_get(url,data){
    // 非同步物件
    var ajax=new new XMLHttpRequest();

    //url方法
    //如果是get傳送資料,傳送的格式為xxx.php?name=jack&age=18
    //so這裡需要拼接url
    if(data){
        //如果有值 需要拼接字串
        url+='?';
        url+=data;
    }
    ajax.open("get", url);

    //傳送
    ajax.send();
    //註冊事件
ajax.onreadystatechange=function(){ //在事件中獲取資料並修改介面顯示 if(ajax.readyState==4&&ajax.status==200){ console.log(ajax.responseText); } } } //ajax post五部曲 function ajax_post(url,data){ var ajax=new new XMLHttpRequest(); ajax.open('post', url); ajax.setRequestHeader("Content-type"
, "application/x-www-form-urlencoded"); if (data) { ajax.send(data); }else { ajax.send(); } ajax.onreadystatechange=function(){ if (ajax.readyState==4&&ajax.status==200) { console.log(ajax.responseText); } } } //method --post or get
//url --請求地址 //data --傳資料給伺服器 //callback --成功回撥函式 //eg:ajax_tool("xx.php","name=nihao","get",function(a){console.log(data)}); function ajax_tool(url,data,method,callback){ var ajax=new new XMLHttpRequest(); //get 跟post 需要分別寫不同的程式碼 if(method=='get'){ if(data){ url+='?'; url+=data; }else { } ajax.open(method, url); ajax.send(); }else { ajax.open(method,url); ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); if (data) { ajax.send(data); }else { ajax.send(); } } ajax.onreadystatechange=function(){ if (ajax.readyState==4&&ajax.status==200) { callback(ajax.responseText); } } } //升級版 //eg:ajax_tool1({method:"get",success:function(data){console.log(data);},data:undefined,url:"xx.php"}) function ajax_tool1(option){ var ajax=new XMLHttpRequest(); //get 跟post 需要分別寫不同的程式碼 if(option.method=='get'){ if(option.data){ option.url+='?'; option.url+=option.data; }else { } ajax.open(option.method, option.url); ajax.send(); }else { ajax.open(option.method,option.url); ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); if (option.data) { ajax.send(option.data); }else { ajax.send(); } } ajax.onreadystatechange=function(){ if (ajax.readyState==4&&ajax.status==200) { option.success(ajax.responseText); } } } /*原生js ajax end*/ //jq 獲取資料 //method --post or get //url --請求地址 //datat --資料型別 //callback --成功回撥函式 function jqData(method, url, datat, callback) { $.ajax({ type: method, url: url, dataType: datat, success: callback, error: function(XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown); } }); }