fetch API 的基本使用

fetch

  • Fetch API是新的ajax解決方案 Fetch會(huì)返回Promise
  • fetch不是ajax的進(jìn)一步封裝,而是原生js勃痴,沒有使用XMLHttpRequest對(duì)象谒所。
  • fetch(url, options).then()
  <script type="text/javascript">
    /*
      Fetch API 基本用法
        fetch(url).then()
        第一個(gè)參數(shù)請(qǐng)求的路徑   Fetch會(huì)返回Promise   所以我們可以使用then 拿到請(qǐng)求成功的結(jié)果 
    */
    fetch('http://localhost:3000/fdata').then(function(data){
      // text()方法屬于fetchAPI的一部分,它返回一個(gè)Promise實(shí)例對(duì)象沛申,用于獲取后臺(tái)返回的數(shù)據(jù)
      return data.text();
    }).then(function(data){
      //   在這個(gè)then里面我們能拿到最終的數(shù)據(jù)  
      console.log(data);
    })
  </script>

fetch API 中的 HTTP 請(qǐng)求

  • fetch(url, options).then()
  • HTTP協(xié)議劣领,它給我們提供了很多的方法,如POST铁材,GET尖淘,DELETE,UPDATE著觉,PATCH和PUT
    • 默認(rèn)的是 GET 請(qǐng)求
    • 需要在 options 對(duì)象中 指定對(duì)應(yīng)的 method method:請(qǐng)求使用的方法
    • post 和 普通 請(qǐng)求的時(shí)候 需要在options 中 設(shè)置 請(qǐng)求頭 headers 和 body
   <script type="text/javascript">
        /*
              Fetch API 調(diào)用接口傳遞參數(shù)
        */
       #1.1 GET參數(shù)傳遞 - 傳統(tǒng)URL  通過(guò)url  村生? 的形式傳參 
        fetch('http://localhost:3000/books?id=123', {
                # get 請(qǐng)求可以省略不寫 默認(rèn)的是GET 
                method: 'get'
            })
            .then(function(data) {
                # 它返回一個(gè)Promise實(shí)例對(duì)象,用于獲取后臺(tái)返回的數(shù)據(jù)
                return data.text();
            }).then(function(data) {
                # 在這個(gè)then里面我們能拿到最終的數(shù)據(jù)  
                console.log(data)
            });

      #1.2  GET參數(shù)傳遞  restful形式的URL  通過(guò)/ 的形式傳遞參數(shù)  即  id = 456 和id后臺(tái)的配置有關(guān)   
        fetch('http://localhost:3000/books/456', {
                # get 請(qǐng)求可以省略不寫 默認(rèn)的是GET 
                method: 'get'
            })
            .then(function(data) {
                return data.text();
            }).then(function(data) {
                console.log(data)
            });

       #2.1  DELETE請(qǐng)求方式參數(shù)傳遞      刪除id  是  id=789
        fetch('http://localhost:3000/books/789', {
                method: 'delete'
            })
            .then(function(data) {
                return data.text();
            }).then(function(data) {
                console.log(data)
            });

       #3 POST請(qǐng)求傳參
        fetch('http://localhost:3000/books', {
                method: 'post',
                # 3.1  傳遞數(shù)據(jù) 
                body: 'uname=lisi&pwd=123',
                #  3.2  設(shè)置請(qǐng)求頭 
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            })
            .then(function(data) {
                return data.text();
            }).then(function(data) {
                console.log(data)
            });

       # POST請(qǐng)求傳參
        fetch('http://localhost:3000/books', {
                method: 'post',
                body: JSON.stringify({
                    uname: '張三',
                    pwd: '456'
                }),
                headers: {
                    'Content-Type': 'application/json'
                }
            })
            .then(function(data) {
                return data.text();
            }).then(function(data) {
                console.log(data)
            });

        # PUT請(qǐng)求傳參     修改id 是 123 的 
        fetch('http://localhost:3000/books/123', {
                method: 'put',
                body: JSON.stringify({
                    uname: '張三',
                    pwd: '789'
                }),
                headers: {
                    'Content-Type': 'application/json'
                }
            })
            .then(function(data) {
                return data.text();
            }).then(function(data) {
                console.log(data)
            });
    </script>

fetchAPI 中 響應(yīng)格式

  • 用fetch來(lái)獲取數(shù)據(jù)饼丘,如果響應(yīng)正常返回趁桃,我們首先看到的是一個(gè)response對(duì)象,其中包括返回的一堆原始字節(jié)肄鸽,這些字節(jié)需要在收到后卫病,需要我們通過(guò)調(diào)用方法將其轉(zhuǎn)換為相應(yīng)格式的數(shù)據(jù),比如JSON典徘,BLOB或者TEXT等等

    /*
      Fetch響應(yīng)結(jié)果的數(shù)據(jù)格式
    */
    fetch('http://localhost:3000/json').then(function(data){
      // return data.json();   //  將獲取到的數(shù)據(jù)使用 json 轉(zhuǎn)換對(duì)象
      return data.text(); //  //  將獲取到的數(shù)據(jù) 轉(zhuǎn)換成字符串 
    }).then(function(data){
      // console.log(data.uname)
      // console.log(typeof data)
      var obj = JSON.parse(data);
      console.log(obj.uname,obj.age,obj.gender)
    })

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末忽肛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子烂斋,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汛骂,死亡現(xiàn)場(chǎng)離奇詭異罕模,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)帘瞭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門淑掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蝶念,你說(shuō)我怎么就攤上這事抛腕。” “怎么了媒殉?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵担敌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我廷蓉,道長(zhǎng)全封,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任桃犬,我火速辦了婚禮刹悴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攒暇。我一直安慰自己土匀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布形用。 她就那樣靜靜地躺著就轧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尾序。 梳的紋絲不亂的頭發(fā)上钓丰,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音每币,去河邊找鬼携丁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兰怠,可吹牛的內(nèi)容都是我干的梦鉴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼揭保,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肥橙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起秸侣,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤存筏,失蹤者是張志新(化名)和其女友劉穎宠互,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椭坚,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡予跌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了善茎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片券册。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俭厚,死狀恐怖陨舱,靈堂內(nèi)的尸體忽然破棺而出厘灼,到底是詐尸還是另有隱情妄帘,我是刑警寧澤星立,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布搪哪,位于F島的核電站狼忱,受9級(jí)特大地震影響谷醉,放射性物質(zhì)發(fā)生泄漏鞠苟。R本人自食惡果不足惜乞榨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望当娱。 院中可真熱鬧吃既,春花似錦、人聲如沸跨细。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)冀惭。三九已至震叙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間散休,已是汗流浹背媒楼。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戚丸,地道東北人划址。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像限府,于是被迫代替她去往敵國(guó)和親夺颤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容