中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

原生js怎么實(shí)現(xiàn)對Ajax的封裝

這篇文章主要介紹原生js怎么實(shí)現(xiàn)對Ajax的封裝,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)十載來致力于為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計(jì)成都營銷網(wǎng)站建設(shè)、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

前言

眾所周知,jquery在我們?nèi)粘i_發(fā)中的使用頻率非常高,與js相比,我們省去了冗長的獲取元素的代碼,不用考慮一些麻煩的兼容問題,更加方便的動畫實(shí)現(xiàn),以及更加方便的方法調(diào)用讓我們覺得jquery真是越用越舒服。但是jquery說到底還是對js的封裝,我們不光要用的舒服還要深入理解其中的原理,這樣才能更好的使用它。

首先我們封裝的函數(shù)為了能實(shí)現(xiàn)可傳入無限多個參數(shù),在使用我們即將封裝的函數(shù)時,需要使用對象進(jìn)行傳參,形式如下:

//data作為參數(shù)傳入我們下面封裝的函數(shù)
var data = {
       //數(shù)據(jù)
       user:"yonghu1",
       pass:'12345',
       age:18,
       //回調(diào)函數(shù)
       success:function (data){
        alert(data);
       }
      }

函數(shù)封裝:

1、封裝一個輔助函數(shù),把傳進(jìn)來的對象拼接成url的字符串

function toData(obj){
  if (obj == null){
    return obj;
  }
  var arr = [];
  for (var i in obj){
    var str = i+"="+obj[i];
    arr.push(str);
  }
  return arr.join("&");
}

2、封裝Ajax

function ajax(obj){
  //指定提交方式的默認(rèn)值
  obj.type = obj.type || "get";
  //設(shè)置是否異步,默認(rèn)為true(異步)
  obj.async = obj.async || true;
  //設(shè)置數(shù)據(jù)的默認(rèn)值
  obj.data = obj.data || null;
  if (window.XMLHttpRequest){
    //非ie
    var ajax = new XMLHttpRequest();
  }else{
    //ie
    var ajax = new ActiveXObject("Microsoft.XMLHTTP");
  }
  //區(qū)分get和post
  if (obj.type == "post"){
    ajax.open(obj.type,obj.url,obj.async);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    var data = toData(obj.data);
    ajax.send(data);
  }else{
    //get test.php?xx=xx&aa=xx
    var url = obj.url+"?"+toData(obj.data);
    ajax.open(obj.type,url,obj.async);
    ajax.send();
  }

  ajax.onreadystatechange = function (){
    if (ajax.readyState == 4){
        if (ajax.status>=200&&ajax.status<300 || ajax.status==304){
          if (obj.success){
            obj.success(ajax.responseText);
          }
        }else{
          if (obj.error){
            obj.error(ajax.status);
          }
        }
      }
   }  
}

以上是“原生js怎么實(shí)現(xiàn)對Ajax的封裝”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站標(biāo)題:原生js怎么實(shí)現(xiàn)對Ajax的封裝
標(biāo)題來源:http://www.rwnh.cn/article48/gposhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)云服務(wù)器、網(wǎng)站維護(hù)靜態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
武胜县| 邮箱| 平凉市| 班戈县| 新龙县| 广水市| 宁陕县| 理塘县| 双牌县| 齐齐哈尔市| 兰西县| 神农架林区| 荔浦县| 淮阳县| 中山市| 祁连县| 呼和浩特市| 沧源| 堆龙德庆县| 吴堡县| 五寨县| 茶陵县| 宝清县| 利津县| 安塞县| 盘山县| 辉南县| 历史| 民和| 榆社县| 黄龙县| 舞钢市| 牟定县| 德清县| 玛沁县| 汽车| 聂拉木县| 天柱县| 云南省| 蓬溪县| 石柱|