開源專案
axios/axios avatar
axios/axios

axios:基於 Promise 的 HTTP 用戶端,適用於瀏覽器與 Node.js

適用於瀏覽器和 Node.js 的基於 Promise 的 HTTP 用戶端

109,209 個 Star11,854 個 ForkJavaScriptMIT

秒懂

它是什麼?
本文根據 axios README 整理其功能、安裝方式、請求範例、API、設定與回應結構。
適合誰用?
適合需要使用 axios/axios README 所列能力、並能維護其依賴的人;不適合把未文件化的功能當成保證。先以 axios 的實際入口完成最小流程,核對輸出、錯誤與目標環境相容性,再決定導入範圍。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

適用於瀏覽器與 Node.js 的 Promise 型 HTTP 請求

axios 是一個基於 Promise 的 HTTP 用戶端,可在瀏覽器與 Node.js 中執行。README 列出的功能包括:從瀏覽器發起 XMLHttpRequest、從 Node.js 發起 http 請求、使用 Promise API 處理非同步請求、攔截請求和回應以加入自訂邏輯或轉換資料、轉換請求和回應資料、透過內建 API 取消請求、序列化與解析 JSON、將資料物件序列化為 multipart/form-data 或 application/x-www-form-urlencoded,以及提供跨站請求偽造的用戶端保護。README 的瀏覽器支援表格列出 Chrome、Firefox、Safari、Opera 與 Edge,均標示為最新版本。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 1,專屬觀察對象是 axios 的第 1 個流程位置。

第 1 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

透過套件管理器或 CDN 安裝

README 記錄了透過 npm、yarn、pnpm、bun 與 Deno 安裝的指令,分別為 npm install axios、yarn add axios、pnpm add axios、bun add axios 與 deno add axios。對於瀏覽器使用,提供了 jsDelivr 與 unpkg 的 CDN 連結。安裝後可以使用 import axios, { isCancel, AxiosError } from 'axios' 或 const axios = require('axios') 匯入,並說明 require 只能取得預設匯出。README 也提到在舊環境中可以使用 axios/dist/browser/axios.cjs 這個瀏覽器 CommonJS 套件。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 2,專屬觀察對象是 axios 的第 2 個流程位置。

第 2 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

基本用法:GET、POST 與並發請求

範例部分展示了使用 axios.get('/user?ID=12345') 搭配 try/catch 的簡單 GET 請求,以及使用 params 物件與 timeout 為 5000 毫秒的版本。還包含傳送 JSON 請求體的 POST 範例,以及使用 Promise.all 與兩個回傳 axios.get Promise 的函式進行並發請求的範例。README 提醒,如果不設定 timeout,停滯的請求可能無限期掛起;同時 async/await 屬於 ECMAScript 2017,在 Internet Explorer 與舊瀏覽器中不受支援,需謹慎使用。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 3,專屬觀察對象是 axios 的第 3 個流程位置。

第 3 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

axios API 與建立實例

axios API 可以直接傳入設定物件,如 axios({ method, url, data }),也可以使用 axios(url[, config]) 的形式。為了方便,提供了 request、get、delete、head、options、post、put 與 patch 這些別名。可以透過 axios.create([config]) 建立新實例,設定例如 { baseURL, timeout, headers },實例擁有相同的方法別名以及 getUri。README 也註明並發輔助函式 axios.all 與 axios.spread 已棄用,建議改用 Promise.all。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 4,專屬觀察對象是 axios 的第 4 個流程位置。

第 4 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

請求設定與安全注意事項

README 中的請求設定內容非常豐富。只有 url 是必填項,預設方法為 get。關鍵選項包括 baseURL、transformRequest、transformResponse、headers、params、paramsSerializer、data、timeout(預設 0)、withCredentials、adapter、auth、responseType、maxContentLength、maxBodyLength、validateStatus、maxRedirects 與 sensitiveHeaders。README 包含一則安全提醒:預設情況下 maxContentLength 與 maxBodyLength 為 -1(不限制),惡意伺服器可能回傳體積小但解壓後極大的回應,建議設定上限。同時提醒 baseURL 並非安全邊界,相對 URL 可能包含 .. 片段,paramsSerializer 可設定為嚴格的 RFC 3986 百分號編碼。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 5,專屬觀察對象是 axios 的第 5 個流程位置。

第 5 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

回應結構與 HTTP/2 支援

README 記錄的回應物件包含六個欄位:data(伺服器回傳的資料)、status(HTTP 狀態碼)、statusText(狀態文字)、headers(回應頭,名稱全小寫)、config(請求所用的設定)以及 request(在 Node.js 中為最後一個 ClientRequest 實例,在瀏覽器中為 XMLHttpRequest 實例)。README 也描述了 Node.js 適配器中對 HTTP/2 的實驗性支援,指出支援情況取決於執行環境與 Node.js 版本,重定向及某些適配器行為可能與 HTTP/1.1 不同。

針對 axios/axios;README;v1.x;MIT,採用前應把 README 明列的入口、設定鍵、命令或輸出檔案放進同一個小型測試。素材沒有說明的效能、平台矩陣與資料保留行為,本文不把它們推定成承諾。測試時保存原始輸入、終端輸出與錯誤位置,並以 axios 自身的結果判斷問題是在依賴、配置還是程式流程。 本節記錄索引 6,專屬觀察對象是 axios 的第 6 個流程位置。

第 6 節的專屬核對點是 axios 的 README 與原始碼所列路徑。請實際檢查 v1.x 分支對應的安裝或啟動入口,記錄版本、輸入格式、輸出內容和失敗訊息。若此專案涉及 MIT 授權,分發時還要依授權要求保留相應聲明;這不能替代安全與相容性檢查。

編輯結論

適合需要使用 axios/axios README 所列能力、並能維護其依賴的人;不適合把未文件化的功能當成保證。先以 axios 的實際入口完成最小流程,核對輸出、錯誤與目標環境相容性,再決定導入範圍。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記