用原生JS對AJAX做簡單封裝的實例代碼
來源:易賢網 閱讀:835 次 日期:2016-07-28 14:24:18
溫馨提示:易賢網小編為您整理了“用原生JS對AJAX做簡單封裝的實例代碼”,方便廣大網友查閱!

首先,我們需要xhr對象。這對我們來說不難,封裝成一個函數。

var createAjax = function() { var xhr = null; try { //IE系列瀏覽器 xhr = new ActiveXObject("microsoft.xmlhttp");

  } catch (e1) { try { //非IE瀏覽器 xhr = new XMLHttpRequest();

    } catch (e2) { window.alert("您的瀏覽器不支持ajax,請更換!");

    }

  } return xhr;

}; 

然后,我們來寫核心函數。

var ajax = function(conf) { // 初始化 //type參數,可選 var type = conf.type; //url參數,必填 var url = conf.url; //data參數可選,只有在post請求時需要 var data = conf.data; //datatype參數可選 var dataType = conf.dataType; //回調函數可選 var success = conf.success; if (type == null){ //type參數可選,默認為get type = "get";

  } if (dataType == null){ //dataType參數可選,默認為text dataType = "text";

  } // 創(chuàng)建ajax引擎對象 var xhr = createAjax(); // 打開 xhr.open(type, url, true); // 發(fā)送 if (type == "GET" || type == "get") {

    xhr.send(null);

  } else if (type == "POST" || type == "post") {

    xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");

    xhr.send(data);

  }

  xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { if(dataType == "text"||dataType=="TEXT") { if (success != null){ //普通文本 success(xhr.responseText);

        }

      }else if(dataType=="xml"||dataType=="XML") { if (success != null){ //接收xml文檔 success(xhr.responseXML);

        } 

      }else if(dataType=="json"||dataType=="JSON") { if (success != null){ //將json字符串轉換為js對象 success(eval("("+xhr.responseText+")"));

        }

      }

    }

  };

};

最后,說明一下此函數的用法。

ajax({ type:"post",

   url:"test.jsp",

   data:"name=dipoo&info=good",

   dataType:"json",

   success:function(data){ alert(data.name); } }); 

以上這篇用原生JS對AJAX做簡單封裝的實例代碼就是小編分享給大家的全部內容了,希望能給大家一個參考

更多信息請查看網絡編程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網