欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript實現(xiàn)簡單的ajax封裝示例

 更新時間:2016年12月28日 11:53:25   作者:大前端  
這篇文章主要介紹了javascript實現(xiàn)簡單的ajax封裝功能,結(jié)合實例形式分析了ajax基本功能與操作實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了javascript實現(xiàn)簡單的ajax功能封裝。分享給大家供大家參考,具體如下:

function ajax(obj){
    var xhr = (function (){//獲取xhr對象,為了兼容ie6所以進行了重新封裝
  if(typeof XMLHttpRequest !='undefined') {
    return new XMLHttpRequest();
  }else if(typeof ActiveXObject !='undefined') {
    var version = [
      'MSXML2.XMLHttp6.0',
      'MSXML2.XMLHttp3.0',
      'MSXML2.XMLHttp'
    ]
    for(var i in version) {
      try{
        return new ActiveXObject(version[i]);
        break;
      }catch(e){
      //捕獲錯誤進行然后跳出繼續(xù)循環(huán)
      }
    }
  }else{
    throw new Error("您的系統(tǒng)或瀏覽器不支持XHR對象!");
  }
})();//獲取xhr對象
    //默認true開啟異步(異步和同步的主要區(qū)別是異步在請求的時候后面的腳本可以繼續(xù)運行,同步的話必須運行完ajax然后才能運行其后面的腳本)
    if(obj.async === true) {
      xhr.onreadystatechange = function() {
        if(xhr.readyState ==4) {
          callback(xhr.responseText);
        }
      }
    }
  var arr=[] ;
  for(var i in obj.data) {arr.push(encodeURIComponent(i)+'='+encodeURIComponent(obj.data[i]));}
  obj.data = arr.join('&');  //這一步要注意一下,不管是get/post 方式提交都必須要對傳進來的obj.data進行格式化 最后轉(zhuǎn)化成的格式name=zhang&age=26&wedding=no
  if(obj.method === 'get') {//通過get方式請求的
      obj.url = obj.url.indexOf('?') ==-1 ? obj.url+'?rand='+Math.random()+'&'+obj.data : obj.url+'rand='+Math.random()+'&'+obj.data;
      xhr.open(obj.method,obj.url,obj.async);
      xhr.send(null);
  }
  if(obj.method === 'post') {//通過post方式請求的
      obj.url =obj.url+'?rand='+Math.random();
      xhr.open(obj.method,obj.url,obj.async);
      xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//這是對請求頭部的類型重設(shè),post的請求必須要重設(shè);
      xhr.send(obj.data);
  }
  //false開啟同步
  if(obj.async === false) {callback(xhr.responseText);}
  function callback (returnTxt) {
      if(xhr.status == 200){
        obj.success(returnTxt);
      }else {
      alert('獲取數(shù)據(jù)錯誤!錯誤代號:' + xhr.status + ',錯誤信息:' + xhr.statusText);
    }
  }
}

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript中ajax操作技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

最新評論