最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用原生js寫ajax實例(推薦)

 更新時間:2017年05月31日 07:46:50   投稿:jingxian  
下面小編就為大家?guī)硪黄褂迷鷍s寫ajax實例(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

// 使用原生js 封裝ajax
// 兼容xhr對象
function createXHR(){
  if(typeof XMLHttpRequest != "undefined"){ // 非IE6瀏覽器
    return new XMLHttpRequest();
  }else if(typeof ActiveXObject != "undefined"){  // IE6瀏覽器
    var version = [
          "MSXML2.XMLHttp.6.0",
          "MSXML2.XMLHttp.3.0",
          "MSXML2.XMLHttp",
    ];
    for(var i = 0; i < version.length; i++){
      try{
        return new ActiveXObject(version[i]);
      }catch(e){
        //跳過
      }
    }
  }else{
    throw new Error("您的系統(tǒng)或瀏覽器不支持XHR對象!");
  }
}
// 轉(zhuǎn)義字符
function params(data){
  var arr = [];
  for(var i in data){
    arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
  }
  return arr.join("&");
}
// 封裝ajax
function ga_ajax(obj){
  var xhr = createXHR();
  obj.url = obj.url + "?rand=" + Math.random(); // 清除緩存
  obj.data = params(obj.data);   // 轉(zhuǎn)義字符串
  if(obj.method === "get"){   // 判斷使用的是否是get方式發(fā)送
    obj.url += obj.url.indexOf("?") == "-1" ? "?" + obj.data : "&" + obj.data;
  }
  // 異步
  if(obj.async === true){
    // 異步的時候需要觸發(fā)onreadystatechange事件
    xhr.onreadystatechange = function(){
      // 執(zhí)行完成
      if(xhr.readyState == 4){
        callBack();
      }
    }
  }
  xhr.open(obj.method,obj.url,obj.async); // false是同步 true是異步 // "demo.php?rand="+Math.random()+"&name=ga&ga",
  if(obj.method === "post"){
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr.send(obj.data);
  }else{
    xhr.send(null);
  }
  // xhr.abort(); // 取消異步請求
  // 同步
  if(obj.async === false){
    callBack();
  }
  // 返回數(shù)據(jù)
  function callBack(){
    // 判斷是否返回正確
    if(xhr.status == 200){
      obj.success(xhr.responseText);
    }else{
      obj.Error("獲取數(shù)據(jù)失敗,錯誤代號為:"+xhr.status+"錯誤信息為:"+xhr.statusText);
    }
  }
}

var html = document.getElementsByTagName("html")[0];
html.onclick = function(){
  ga_ajax({
    "method" : "post",
    "url" : "demo.php",
    "data" : {
      "name" : "gao",
      "age" : 100,
      "num" : "12346&598"
    },
    "success" : function(data){
      alert(data);
    },
    "Error" : function(text){
      alert(text);
    },
    "async" : false
  });
}

以上這篇使用原生js寫ajax實例(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • js下拉框二級關(guān)聯(lián)菜單效果代碼具體實現(xiàn)

    js下拉框二級關(guān)聯(lián)菜單效果代碼具體實現(xiàn)

    這篇文章介紹了js下拉框二級關(guān)聯(lián)菜單效果代碼具體實現(xiàn),有需要的朋友可以參考一下
    2013-08-08
  • js中合并對象的幾種實現(xiàn)方法

    js中合并對象的幾種實現(xiàn)方法

    "js 合并對象"是一種在JavaScript編程中常見的操作,用于將多個對象的屬性合并到一起,通常,我們會使用ES6的擴展運算符或者Object.assign()函數(shù)來實現(xiàn)這個功能,感興趣的可以了解一下
    2023-08-08
  • 1分鐘快速了解js實現(xiàn)下載文件功能的4種方式

    1分鐘快速了解js實現(xiàn)下載文件功能的4種方式

    在前端開發(fā)中,我們經(jīng)常需要實現(xiàn)文件下載功能,例如下載用戶上傳的圖片、用戶生成的文件等,這篇文章主要給大家介紹了關(guān)于如何通過1分鐘快速了解js實現(xiàn)下載文件功能的4種方式,需要的朋友可以參考下
    2024-03-03
  • Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法

    Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法

    今天小編就為大家分享一篇Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • js前端頁面用插件docx-preview展示docx文件

    js前端頁面用插件docx-preview展示docx文件

    這篇文章主要給大家介紹了如何使用docx-preview.min.js插件在頁面上展示.docx文件,并說明了該插件依賴于jszip.min.js插件,通過實例展示了如何實現(xiàn)這一功能,需要的朋友可以參考下
    2024-11-11
  • js超時調(diào)用setTimeout和間歇調(diào)用setInterval實例分析

    js超時調(diào)用setTimeout和間歇調(diào)用setInterval實例分析

    這篇文章主要介紹了js超時調(diào)用setTimeout和間歇調(diào)用setInterval,以實例形式對比分析了setTimeout與setInterval的具體使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-01-01
  • 微信小程序自定義底部彈出框

    微信小程序自定義底部彈出框

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義底部彈出框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • E3 tree 1.6在Firefox下顯示問題的修復(fù)方法

    E3 tree 1.6在Firefox下顯示問題的修復(fù)方法

    tree 在Firefox下只顯示一句話,用firebug查看頁面元素觀察發(fā)現(xiàn),兩個script導(dǎo)入被一個<script>分隔開了,顯然是document.write的問題.由于Firefox對js規(guī)范的檢查比較嚴(yán)格,肯定一些字符輸出的的時候沒有轉(zhuǎn)義
    2013-01-01
  • EasyUI彈出框行編輯如何通過下拉框?qū)崿F(xiàn)內(nèi)容聯(lián)動

    EasyUI彈出框行編輯如何通過下拉框?qū)崿F(xiàn)內(nèi)容聯(lián)動

    本文介紹了如何使用EasyUI彈出框和下拉框?qū)崿F(xiàn)內(nèi)容聯(lián)動,并詳細(xì)描述了當(dāng)用戶選擇下拉框時如何更新當(dāng)前行數(shù)據(jù),通過解決datagrid的onClickRow和onClickCell事件不觸發(fā)的問題,實現(xiàn)了下拉框選擇后數(shù)據(jù)的自動填充
    2024-11-11
  • await?Streaking解決原理示例詳解

    await?Streaking解決原理示例詳解

    這篇文章主要為大家介紹了await?Streaking解決原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論

沁水县| 英山县| 历史| 十堰市| 稷山县| 牟定县| 隆昌县| 惠安县| 泗水县| 南郑县| 万年县| 广平县| 京山县| 师宗县| 肥西县| 定安县| 从江县| 永年县| 平定县| 七台河市| 尼木县| 临江市| 桐柏县| 海南省| 衡阳市| 商水县| 韶山市| 潍坊市| 凤山县| 永修县| 永丰县| 镶黄旗| 冕宁县| 陈巴尔虎旗| 曲水县| 沾化县| 册亨县| 永济市| 新乡市| 日土县| 莫力|