」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 阿克西奧斯

阿克西奧斯

發佈於2024-08-06
瀏覽:330

Axios

慢慢閱讀程式碼,並根據需要跟隨資訊流和資訊格式的變更

概述

Axios 是一個流行的 JavaScript 程式庫,用於從瀏覽器和 Node.js 發出 HTTP 請求。它是一個開源項目,旨在簡化向 REST 端點發送非同步 HTTP 請求以及執行 CRUD(建立、讀取、更新、刪除)操作的過程。

創作者

Axios 由 Matt Zabriskie 創建。該專案由社區維護,可在 GitHub 上取得。

受益人

Axios 有利於:

  • 前端開發人員:用於從Web應用程式發出HTTP請求。
  • 後端開發人員:用於在 Node.js 應用程式中整合 HTTP 請求。
  • 全端開發人員:用於在客戶端和伺服器端處理HTTP請求。

優點

  1. 基於 Promise:讓非同步請求和回應的處理變得更加容易。
  2. 攔截器:允許在處理請求或回應之前對其進行修改。
  3. 自動 JSON 資料轉換:簡化 JSON 資料的處理。
  4. CSRF 保護:幫助跨站點請求偽造保護。
  5. 請求和回應轉換:請求和回應的自訂轉換。
  6. 錯誤處理:與其他方法相比,簡化了錯誤處理。
  7. 廣泛的瀏覽器支援:適用於所有現代瀏覽器和 Node.js。

用法

使用地點

  • Web 應用程式:與後端服務通訊。
  • Node.js 應用程式:向其他 API 或服務發出 HTTP 請求。
  • 行動應用程式:作為 React Native 等框架的一部分。

失敗的地方

  1. 重型應用程式:由於記憶體消耗,可能不是非常大的資料傳輸的最佳選擇。
  2. 瀏覽器限制:除非正確處理 CORS,否則受同源策略限制。
  3. 依賴項大小:需要管理的額外依賴項,這可能是簡約專案的問題。

為什麼要使用它

  • 易於使用:用於執行 HTTP 請求的簡單 API。
  • 靈活性:易於配置和擴展。
  • 社區支持:廣泛採用和廣泛的社區支持。

為什麼不使用它

  • 庫大小:新增另一個相依性的開銷。
  • 替代方案:優先選擇 Fetch API 或其他函式庫(如 request 或 superagent)。

如何使用

安裝

npm install axios

基本用法

const axios = require('axios');

// Performing a GET request
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

詳細用法及註釋

const axios = require('axios');

// Create an instance of axios with default settings
const instance = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' }
});

// Interceptor to log request details
instance.interceptors.request.use(request => {
  console.log('Starting Request', request);
  return request;
});

// Interceptor to log response details
instance.interceptors.response.use(response => {
  console.log('Response:', response);
  return response;
});

// Making a POST request
instance.post('/user', {
  firstName: 'Fred',
  lastName: 'Flintstone'
})
  .then(response => {
    console.log('User created:', response.data);
  })
  .catch(error => {
    console.error('Error creating user:', error);
  });

濫用範例

  1. 忽略錯誤處理:不正確處理錯誤可能會導致應用程式崩潰。
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  });
// Error handling should not be omitted
  1. 使用同步請求阻止代碼:Axios 不支援同步請求,以期望同步行為的方式使用它是不正確的。

方法

實例方法

  • axios(配置)
  • axios(url[, 設定])

請求方法

  • axios.request(配置)
  • axios.get(url[, 設定])
  • axios.delete(url[, 配置])
  • axios.head(url[, 配置])
  • axios.options(url[, 設定])
  • axios.post(url[, 資料[, 設定]])
  • axios.put(url[, 資料[, 設定]])
  • axios.patch(url[, 資料[, 設定]])

便捷方法

  • axios.all(可迭代)
  • axios.spread(回呼)

建立實例

  • axios.create([配置])

攔截器

  • axios.interceptors.request.use(onFulfilled[, onRejected[, options]])
  • axios.interceptors.response.use(onFulfilled[, onRejected[, options]])

配置預設值

  • axios.defaults

取消

  • axios.取消
  • axios.CancelToken
  • axios.isCancel

結論

Axios 是一個強大、易於使用的程式庫,用於在 JavaScript 應用程式中發出 HTTP 請求。它提供了強大的 API,具有請求和回應攔截、自動 JSON 轉換和基於 Promise 的架構等功能。然而,必須了解其限制並正確使用它以避免潛在的陷阱。

版本聲明 本文轉載於:https://dev.to/l_thomas_7c618d0460a87887/axios-ndn?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-05-17
  • 如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    從python import codecs import codecs import codecs 導入 text = codecs.decode('這狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#帶有...
    程式設計 發佈於2025-05-17
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。但是,對於大字符串或使用許多字符串時,這可能是降低的。 利用正則表達式Example UsageConsider a scenario where ...
    程式設計 發佈於2025-05-17
  • PHP未來:適應與創新
    PHP未來:適應與創新
    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。 引言在編程世界中,PHP一直是網頁開發的中流砥柱。作為一個從1994年就開始發展...
    程式設計 發佈於2025-05-17
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-05-17
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-05-17
  • 在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
    在C中的顯式刪除 在C中的動態內存分配時,開發人員通常會想知道是否有必要在heap-procal extrable exit exit上進行手動調用“ delete”操作員,但開發人員通常會想知道是否需要手動調用“ delete”操作員。本文深入研究了這個主題。 在C主函數中,使用了動態分配變量(...
    程式設計 發佈於2025-05-17
  • 如何將來自三個MySQL表的數據組合到新表中?
    如何將來自三個MySQL表的數據組合到新表中?
    mysql:從三個表和列的新表創建新表 答案:為了實現這一目標,您可以利用一個3-way Join。 選擇p。 *,d.content作為年齡 來自人為p的人 加入d.person_id = p.id上的d的詳細信息 加入T.Id = d.detail_id的分類法 其中t.taxonomy ...
    程式設計 發佈於2025-05-17
  • 如何避免Go語言切片時的內存洩漏?
    如何避免Go語言切片時的內存洩漏?
    ,a [j:] ...雖然通常有效,但如果使用指針,可能會導致內存洩漏。這是因為原始的備份陣列保持完整,這意味著新切片外部指針引用的任何對象仍然可能佔據內存。 copy(a [i:] 對於k,n:= len(a)-j i,len(a); k
    程式設計 發佈於2025-05-17
  • 哪種在JavaScript中聲明多個變量的方法更可維護?
    哪種在JavaScript中聲明多個變量的方法更可維護?
    在JavaScript中聲明多個變量:探索兩個方法在JavaScript中,開發人員經常遇到需要聲明多個變量的需要。對此的兩種常見方法是:在單獨的行上聲明每個變量: 當涉及性能時,這兩種方法本質上都是等效的。但是,可維護性可能會有所不同。 第一個方法被認為更易於維護。每個聲明都是其自己的語句,使...
    程式設計 發佈於2025-05-17
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-05-17
  • 為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    程式設計 發佈於2025-05-17
  • 為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    為什麼使用固定定位時,為什麼具有100%網格板柱的網格超越身體?
    網格超過身體,用100%grid-template-columns 為什麼在grid-template-colms中具有100%的顯示器,當位置設置為設置的位置時,grid-template-colly修復了? 問題: 考慮以下CSS和html: class =“ snippet-code”> ...
    程式設計 發佈於2025-05-17
  • 表單刷新後如何防止重複提交?
    表單刷新後如何防止重複提交?
    在Web開發中預防重複提交 在表格提交後刷新頁面時,遇到重複提交的問題是常見的。要解決這個問題,請考慮以下方法: 想像一下具有這樣的代碼段,看起來像這樣的代碼段:)){ //數據庫操作... 迴聲“操作完成”; 死(); } ? > ...
    程式設計 發佈於2025-05-17

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3