一篇學通Axios

Axios 是一個基于 Promise 的 HTTP 客戶端,用于瀏覽器和 node.js 環境。它提供了一種簡單易用的方式來發送 HTTP 請求,并支持諸如請求和響應攔截、轉換數據、取消請求以及自動轉換 JSON 數據等功能。
在這里插入圖片描述

Axios 名字的由來

Axios 的名字來源于希臘神話中的英雄 Axios。這位英雄是一個勇敢的冒險家,擁有強大的力量和知識,能夠改變任何事物,使它們變得更加強大。Axios 庫的設計初衷和命名靈感正是源自于這位英雄,旨在提供一種強大且靈活的 HTTP 客戶端,幫助開發者在前端和 Node.js 環境中輕松發送 HTTP 請求,并處理各種復雜的網絡交互場景。

Axios 詳細介紹

  1. 基本概念

    • Axios(全稱 ajax I/O system)不是一種新技術,本質上是對原生 XHR(XMLHttpRequest)的封裝,但它是基于 Promise 的實現版本,符合最新的 ES 規范。
    • Axios 提供了簡單而直觀的 API,使得在前端應用程序中進行 HTTP 通信變得更加容易。
    • Axios 可以與現代前端框架(如 React、Vue.js 和 Angular)以及后端服務器(如 Node.js)配合使用。
  2. 主要特性

    • 從瀏覽器中創建 XMLHttpRequests。
    • 從 node.js 創建 http 請求。
    • 支持 Promise API。
    • 攔截請求和響應。
    • 轉換請求數據和響應數據。
    • 取消請求。
    • 自動轉換 JSON 數據。
    • 客戶端支持防御 XSRF。

Axios 安裝

Axios 可以通過多種方式進行安裝,包括使用 npm、yarn 或 CDN。

  • 使用 npm
    npm install axios
  • 使用 yarn
   yarn add axios
  • 使用 CDN
   <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

Axios 示例

1. 發送 GET 請求

  • 基本用法
    
axios.get('/user?ID=12345')  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });  // 或者使用 axios(config) 形式  
axios({  method: 'get',  url: '/user',  params: {  ID: 12345  }  
})  
.then(function (response) {  console.log(response);  
})  
.catch(function (error) {  console.log(error);  
});
  • 使用 axios 實例
const instance = axios.create({  baseURL: 'https://some-domain.com/api/',  timeout: 1000,  headers: {'X-Custom-Header': 'foobar'}  
});  // 發送請求  
instance.get('/user?ID=12345')  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });

2. 發送 POST 請求

  • application/json 類型
axios.post('/user', {  firstName: 'Fred',  lastName: 'Flintstone'  })  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });
  • form-data 類型
const formData = new FormData();  
formData.append('file', fileInput.files[0]);  
formData.append('user', '12345');  axios.post('/upload', formData, {  headers: {  'Content-Type': 'multipart/form-data'  }  })  .then(function (response) {  console.log(response);  })  .catch(function (error) {  console.log(error);  });

3 請求攔截器和響應攔截器

  • 請求攔截器
axios.interceptors.request.use(function (config) {  // 在發送請求之前做些什么  return config;  }, function (error) {  // 對請求錯誤做些什么  return Promise.reject(error);  });
  • 響應攔截器
axios.interceptors.response.use(function (response) {  // 對響應數據做點什么  return response;  }, function (error) {  // 對請求錯誤做些什么  return Promise.reject(error);  });

  • Axios 官方站點: https://axios-http.com/zh/
  • Axios 源碼地址:https://github.com/axios/axios


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44995.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux操作系統入門(適用java軟件開發)

1.什么是操作系統? 操作系統&#xff08;Operating System&#xff0c;簡稱 OS&#xff09;是一種系統軟件&#xff0c;它管理和控制計算機硬件與軟件資源&#xff0c;為用戶和應用程序提供一個接口和環境來訪問計算機系統的服務和功能。操作系統的主要目標是提供一個方便、有…

探索性數據分析:使用Python與Pandas庫實現數據洞察

探索性數據分析&#xff1a;使用Python與Pandas庫實現數據洞察 引言 在當今數據驅動的時代&#xff0c;數據分析已成為決策制定、策略規劃和業務優化的關鍵環節。無論是商業智能、金融分析還是市場研究&#xff0c;數據分析都扮演著至關重要的角色。Pandas庫作為Python生態系統…

微積分-導數8(線性近似和微分)

線性近似 我們已經看到&#xff0c;在切點附近&#xff0c;曲線與其切線非常接近。事實上&#xff0c;通過放大可微函數圖上的某一點&#xff0c;我們注意到圖形看起來越來越像它的切線&#xff08;見圖&#xff09;。這一觀察是找到函數近似值的方法的基礎。 這個想法是&am…

Java [ 進階 ] JVM雙親委派機制?

目錄 ?探索Java進階 雙親委派機制? 理解 Java 的雙親委派機制 什么是雙親委派機制&#xff1f; 類加載器的層次結構 雙親委派機制的工作原理 優缺點分析 優點 缺點 一些面試題目&#xff1a; 什么是雙親委派機制&#xff1f; 雙親委派機制的工作流程是怎樣的&am…

monodepth代碼與原理對照實現

先實現demomonodepth/monodepth_simple.py at master mrharicot/monodepth GitHub import os os.environ[TF_CPP_MIN_LOG_LEVEL]0 這行代碼是為tensorflow設置環境變量TF_CPP_MIN_LOG_LEVEL,用來控制tensorflow c后端輸出的日志級別。0就是輸出所有級別的日志信息。包括(調…

vue2學習筆記3 - 開發環境知識補充:live server簡介

學習筆記1搭建開發環境中&#xff0c;在vs code里安裝了live server插件&#xff0c;后續多次使用open with live server來打開瀏覽器&#xff0c;展示代碼運行效果。本著知其然也要知其所以然的態度&#xff0c;稍稍了解了一下Live server。 什么是Live Server Live Server是…

探索Conda的依賴迷宮:包依賴樹的構建與解析

探索Conda的依賴迷宮&#xff1a;包依賴樹的構建與解析 引言 在復雜的軟件項目中&#xff0c;依賴管理是確保軟件正常運行的關鍵。Conda作為流行的Python包管理器&#xff0c;提供了強大的依賴樹功能&#xff0c;幫助用戶理解和管理包依賴關系。本文將詳細介紹如何在Conda中使…

個性化你的編碼世界:深度定制PyCharm主題與字體

個性化你的編碼世界&#xff1a;深度定制PyCharm主題與字體 引言 在編碼的旅途中&#xff0c;一個舒適且個性化的環境能夠顯著提升開發體驗。PyCharm作為業界領先的集成開發環境&#xff08;IDE&#xff09;&#xff0c;提供了豐富的定制選項&#xff0c;允許用戶根據個人喜好…

力扣--20. 有效的括號

目錄 題目 思路 注意 題目 給定一個只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括…

DP討論——適配器模式

學而時習之&#xff0c;溫故而知新。 敵人出招&#xff08;使用場景&#xff09; 說是自己的程序對接第三方的庫&#xff0c;但是自己的代碼的接口設計完畢了&#xff0c;如何對接上&#xff1f; 你出招 適配器模式就是為此而生的——我覺得應該是該解決方法被命名為了適配…

滯后序列分析案例詳解

一個半小時 超出30分鐘 日期&#xff1a;2024-07-13 19:14:33 回放 摘要 Python在行為分析中的應用 主要講述了如何使用Python處理序列數據&#xff0c;以及如何結合定性分析和定量分析來全面分析課程內容。講者提到了一種叫做分層法的分類方法&#xff0c;該方法使用了布魯…

ArcGIS Pro SDK (九)幾何 2 坐標

ArcGIS Pro SDK &#xff08;九&#xff09;幾何 2 坐標 文章目錄 ArcGIS Pro SDK &#xff08;九&#xff09;幾何 2 坐標1 矢量極坐標2 獲取矢量傾角3 獲取矢量方位角4 向量運算5 2D 矢量操作6 生成器 環境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 矢量…

知識圖譜數據庫基本知識

文章目錄 知識圖譜數據模型知識圖譜查詢語言隨著知識圖譜規模的日益增長,數據管理愈加重要。一方面,以文件形式保存的知識圖譜顯然無法滿足用戶的查詢、檢索、推理、分析及各種應用需求;另一方面,傳統數據庫的關系模型與知識圖譜的圖模型之間存在顯著差異,關系數據庫無法有…

ctfshow-web入門-php特性(web96-web99)

目錄 1、web96 2、web97 3、web98 4、web99 1、web96 試了下通配、轉義、拼接、大小寫都不行 這里使用絕對路徑或者當前路徑繞過&#xff1a; ?u./flag.php ?u/var/www/html/flag.php 還可以使用 php 偽協議&#xff1a; ?uphp://filter/resourceflag.php 2、web97 關…

數據結構(Java):力扣Stack集合OJ題

1、括號匹配問題 . - 力扣&#xff08;LeetCode&#xff09; 1.1 思路分析 根據棧的先進后出原則&#xff0c;我們可以這樣解決問題&#xff1a; 遍歷字符串&#xff0c;遇見左括號就將左括號push入棧&#xff1b;遇見右括號就pop出棧&#xff0c;將出棧的元素和該右括號比較…

pyparsing開啟調試

在要匹配的表達后添加set_debug

【密碼學】實現消息認證或數字簽名的幾種方式

消息認證的目的是驗證消息的完整性和確認消息的來源。數字簽名的目的是不僅驗證消息的完整性和來源&#xff0c;還提供了不可否認性。此外&#xff0c;數字簽名還可以驗證消息的創建時間&#xff0c;防止重放攻擊。那么具體有哪些實現的方式呢&#xff1f; 一、僅提供消息認證…

python練習(if--else)

通過input語句獲取鍵盤輸入的身高 判斷身高是否超過120cm&#xff0c;并通過print給出提示信息。 代碼輸出示例&#xff1a; 1.歡迎來到樂園。 請輸入你的身高&#xff08;cm&#xff09;&#xff1a;130 您的身高超出120cm&#xff0c;游玩需要夠票10元。 祝您游玩愉快。 2…

文件內容查閱

cat concatenate files and print on the standard output Linux中一個最簡單的且最常用的命令是cat命令。其功能是在終端設備上顯示文件內容。 cat命令-n選項用于顯示行號。 tac concatenate and print files in reverse tac命令的功能是用于反向顯示文件內容&#xff0c;即…

計算機網絡復習筆記【面向考綱整理】

計算機網絡復習筆記 一、計算機網絡體系結構&#xff08;一&#xff09;計算機網絡的概念、分類、組成與功能1.計算機網絡的概念、組成與功能1.1計算機網絡的概念1.2計算機網絡的組成1.3計算機網絡的功能 2.計算機網絡的分類3.計算機網絡的標準化工作及相關知識 &#xff08;二…