成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Fetch API速查表:9個最常見的API請求

開發(fā) 前端
對于Fetch API我相信你已經用過它們很多次了,但是你是否還記得語法?如果能避免在舊項目中尋找半年前使用過的特定請求的語法,豈不更好?

[[354148]]

對于Fetch API我相信你已經用過它們很多次了,但是你是否還記得語法?如果能避免在舊項目中尋找半年前使用過的特定請求的語法,豈不更好?

在本文中,我將列出9個最常見的Fetch API請求,在你忘記API的時候可以翻出來查看。

為什么要使用Fetch API?

如今,我們被所有提供漂亮的SDK的服務寵壞了,這些SDK將實際的API請求抽象化,我們只需要使用典型的語言結構來請求數據,而不關心實際的數據交換。

但是,如果你所選擇的平臺沒有SDK怎么辦?或者如果你同時構建服務器和客戶端呢?在這些情況下,你需要自己處理請求,這就是使用Fetch API的方法。

發(fā)送簡單GET請求

  1. fetch('{url}').then(response => console.log(response)); 

發(fā)送簡單POST請求

  1. fetch('{url}', { 
  2.   method: 'post' 
  3. }).then(response => console.log(response)); 

使用授權令牌進行GET

  1. fetch('{url}', { 
  2.   headers: { 
  3.     'Authorization''Basic {token}' 
  4.   } 
  5. }).then(response => console.log(response)); 

使用查詢字符串數據進行GET

  1. fetch('{url}?var1=value1&var2=value2'
  2.     .then(response => console.log(response)); 

使用CORS進行GET

  1. fetch('{url}', { 
  2.   mode: 'cors' 
  3. }).then(response => console.log(response)); 

使用授權令牌和查詢字符串數據進行POST

  1. fetch('{url}?var1=value1&var2=value2', { 
  2.   method: 'post'
  3.   headers: { 
  4.     'Authorization''Bearer {token}' 
  5.   } 
  6. }).then(response => console.log(response)); 

使用表單數據進行POST

  1. let formData = new FormData(); 
  2. formData.append('field1''value1'); 
  3. formData.append('field2''value2'); 
  4.  
  5. fetch('{url}', { 
  6.   method: 'post'
  7.   body: formData 
  8. }).then(response => console.log(response)); 

使用JSON數據進行POST

  1. fetch('{url}', { 
  2.   method: 'post'
  3.   headers: { 
  4.     'Content-Type''application/json' 
  5.   }, 
  6.   body: JSON.stringify({ 
  7.     'field1''value1'
  8.     'field2''value2' 
  9.   }) 
  10. }) 
  11. .then(response => console.log(response)); 

使用JSON數據和CORS進行POST

  1. fetch('{url}', { 
  2.   method: 'post'
  3.   mode: 'cors'
  4.   headers: { 
  5.     'Content-Type''application/json' 
  6.   }, 
  7.   body: JSON.stringify({ 
  8.     'field1''value1'
  9.     'field2''value2' 
  10.   }) 
  11. }) 
  12. .then(response => console.log(response)); 

如何處理Fetch API請求的結果

Fetch API返回一個Promise。這就是為什么我總是使用 .then() 和回調函數來處理響應的原因:

  1. fetch(...).then(response => { 
  2.    // process the response 

但是,如果您處于異步函數中,也可以等待結果:

  1. async function getData(){ 
  2.   let data = await fetch(...); 
  3.    // process the response 

現在讓我們看一下如何從響應中提取數據:

如何檢查Fetch API響應的狀態(tài)碼

發(fā)送POST,PATCH和PUT請求時,我們通常對返回狀態(tài)代碼感興趣:

  1. fetch(...).then(response => { 
  2.   if (response.status == 200){ 
  3.     // all OK 
  4.   } else { 
  5.     console.log(response.statusText); 
  6.   } 
  7. }); 

如何獲取Fetch API響應的簡單值

某些API端點可能會發(fā)回使用您的數據創(chuàng)建的新數據庫記錄的標識符:

  1. var userId; 
  2.  
  3. fetch(...) 
  4.     .then(response => response.text()) 
  5.     .then(id => { 
  6.         userId = id; 
  7.         console.log(userId) 
  8.     }); 

如何轉換Fetch API響應的JSON數據

但是在大多數情況下,您會在響應正文中接收JSON數據:

  1. var dataObj; 
  2.  
  3. fetch(...) 
  4.     .then(response => response.json()) 
  5.     .then(data => { 
  6.         dataObj = data; 
  7.         console.log(dataObj) 
  8.     }); 

請記住,只有在兩個Promises都解決后,你才能訪問數據。這有時會讓人有點困惑,所以我總是喜歡使用async方法并等待結果。

  1. async function getData(){ 
  2.     var dataObj; 
  3.  
  4.     const response = await fetch(...); 
  5.     const data = await response.json(); 
  6.     dataObj = data; 
  7.     console.log(dataObj); 

總結

這些示例應該涵蓋了大多數情況。

我是否錯過了什么,一個你每天都在使用的請求?或者是其他你正在苦惱的事情?請在評論區(qū)上告訴我。

最后,你也可以以可打印的形式獲得這份備忘單:https://ondrabus.com/fetch-api-cheatsheet

原文:https://www.freecodecamp.org/news/fetch-api-cheatsheet/

作者:Ondrej Polesny

本文轉載自微信公眾號「 前端全棧開發(fā)者」,可以通過以下二維碼關注。轉載本文請聯系 前端全棧開發(fā)者公眾號。

 

責任編輯:武曉燕 來源: 前端全棧開發(fā)者
相關推薦

2024-01-15 10:48:53

REST API系統架構

2021-01-09 16:16:40

開源軟件速查表編程語言

2021-04-20 09:56:58

Python 開發(fā)編程語言

2024-10-29 15:42:13

2023-08-31 22:45:15

Git命令效率

2022-12-19 08:05:04

Python速查表知識點

2021-08-09 13:00:45

Linux速查表

2020-12-18 10:04:52

API漏洞應用程序編程接口

2009-10-26 16:08:40

Oracle默認用戶名

2020-09-01 07:58:34

API漏洞黑客

2015-10-30 11:57:49

開發(fā)者設計師速查表

2020-10-08 18:14:15

碼農Git命令

2022-12-15 07:45:51

極客版編程速查表

2011-03-16 09:49:54

HTML 5

2025-04-25 11:20:00

網絡地址端口

2020-08-06 08:48:38

速查表系統管理員Linux

2017-10-30 13:34:22

深度學習KerasAPI

2022-03-08 15:13:34

Fetch APINode.js開發(fā)者

2021-09-01 15:48:50

API漏洞應用程序安全

2015-07-29 10:46:20

Java錯誤
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美理伦片在线播放 | 国产精品成人久久久久 | 国产日韩精品视频 | 黄色免费在线观看网站 | 中文字幕一区二区三区四区五区 | 久久久精品一区 | 日韩一级电影免费观看 | 久久国产激情视频 | 羞羞午夜| 天色综合网 | 国产精品久久久久久久久久 | 亚洲一二三区不卡 | 看亚洲a级一级毛片 | 亚洲精品乱码久久久久久按摩观 | 国产综合久久久久久鬼色 | 91久久夜色 | 国产精品久久久久久久久久久久久久 | 久久成人久久 | 中文字幕一区在线观看视频 | 久久综合久久综合久久综合 | 亚洲一区二区三区 | 欧美精品三区 | 久久爱综合 | 国产精品一区二区视频 | 羞羞视频网站 | 波多野结衣精品在线 | 男女在线免费观看 | 国产精品成人品 | 蜜桃一区| 天天做日日做 | 国产欧美三区 | sese视频在线观看 | 99日韩| 看真人视频一级毛片 | 午夜电影在线播放 | 国产精品一区二区av | 北条麻妃99精品青青久久主播 | 精品日本久久久久久久久久 | 精品一区二区三区在线观看 | 一区影院 | 亚洲97 |