深入淺出Axios API

一、基礎介紹

Axios是一個基於Promise的HTTP客戶端,可以在瀏覽器和Node.js中使用。其最主要的特點是支持瀏覽器和Node.js兩種環境,並且可以通過async/await語法進行完美的非同步控制。 Axios可以很方便地攔截請求和響應,實現錯誤處理、上傳進度監控等任務。使用Axios還可以讓我們從傳統的XMLHttpRequest架構中解放出來,使用更高效合理的代碼結構來開發應用程序。

二、核心功能

1、發起HTTP請求
Axios可以使用多種方式發起HTTP請求,包括GET、POST、PUT、PATCH、DELETE等HTTP方法。以下是一個使用Axios發起GET請求的示例:

axios.get('/api/user?id=123')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

2、攔截請求和響應
Axios可以通過攔截器對請求和響應進行攔截、轉換,可以進行TOKEN驗證和請求頭配置。以下是一個攔截器示例:

axios.interceptors.request.use(config => {
  config.headers.Authorization = getToken();
  return config;
}, error => {
  return Promise.reject(error);
});

axios.interceptors.response.use(response => {
  return response;
}, error => {
  if(error.response.status === 401){
    //處理未授權的操作
  }
  return Promise.reject(error);
});

3、錯誤處理
Axios可以對請求進行錯誤處理,包括網路錯誤、伺服器端錯誤等。以下是一個錯誤處理示例:

axios.get('/api/user?id=123')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if(error.response){
      console.log(error.response.status);
    }else if(error.request){
      console.log('網路錯誤');
    }else{
      console.log('請求錯誤');
    }
  });

三、高級功能

1、請求和響應配置
Axios可以配置請求和響應的參數,包括超時時間、請求頭信息、響應類型、withCredentials等。以下是一個請求和響應配置示例:

axios({
  method: 'post',
  url: '/api/user',
  data: {
    name: '張三',
    age: '20'
  },
  timeout: 1000,
  headers: {
    'Content-Type': 'application/json'
  },
  responseType: 'json',
  withCredentials: true
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.log(error.statusCode);
});

2、取消請求
Axios提供了一個取消HTTP請求的API,可以對某個請求進行取消操作。以下是一個取消請求示例:

const source = axios.CancelToken.source();

axios.get('/api/user?id=123', {
  cancelToken: source.token
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  if(axios.isCancel(error)){
    console.log('請求已被取消');
  }else{
    console.log('網路錯誤');
  }
});

setTimeout(() => {
  source.cancel('取消請求');
}, 1000);

3、上傳和下載進度監控
Axios可以監控上傳和下載的進度,提供了onDownloadProgress和onUploadProgress兩個API。以下是一個上傳進度監控示例:

axios.post('/api/upload', data, {
  onUploadProgress: progressEvent => {
    console.log(progressEvent.loaded / progressEvent.total * 100 + '%');
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.log(error);
});

四、總結

本文主要介紹了Axios API的基本使用、核心功能和高級功能,包括發起HTTP請求、攔截請求和響應、錯誤處理、請求和響應配置、取消請求和上傳下載進度監控等。使用Axios可以讓我們更快更高效地開發應用程序,並且可以對請求和響應進行自由靈活地控制。

原創文章,作者:MYXQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133551.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MYXQ的頭像MYXQ
上一篇 2024-10-03 23:59
下一篇 2024-10-03 23:59

相關推薦

  • 掌握magic-api item.import,為你的項目注入靈魂

    你是否曾經想要導入一個模塊,但卻不知道如何實現?又或者,你是否在使用magic-api時遇到了無法導入的問題?那麼,你來到了正確的地方。在本文中,我們將詳細闡述magic-api的…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Axios請求數據亂碼問題解決

    本文將從以下三個方面詳細闡述Axios請求數據亂碼問題的原因和解決方法: 一、設置請求頭 Axios請求數據亂碼的原因可能是因為請求時沒有設置請求頭的編碼方式,而且默認的編碼方式是…

    編程 2025-04-28
  • Vertx網關:高效率的API網關中心

    Vertx是一個基於JVM的響應式編程框架,是最適合創建高擴展和高並發應用程序的框架之一。同時Vertx也提供了API網關解決方案,即Vertx網關。本文將詳細介紹Vertx網關,…

    編程 2025-04-28
  • Elasticsearch API使用用法介紹-get /_cat/allocation

    Elasticsearch是一個分散式的開源搜索和分析引擎,支持全文檢索和數據分析,並且可伸縮到上百個節點,處理PB級結構化或非結構化數據。get /_cat/allocation…

    編程 2025-04-28
  • 解析Azkaban API Flow執行結果

    本文將從多個方面對Azkaban API Flow執行結果進行詳細闡述 一、Flow執行結果的返回值 在調用Azkaban API的時候,我們一般都會通過HTTP請求獲取Flow執…

    編程 2025-04-27
  • 高德拾取——地圖API中的強大工具

    一、高德拾取介紹 高德拾取是高德地圖API中的一項重要工具,它可以幫助開發者在地圖上快速選擇經緯度點,並提供多種方式來獲取這些點的信息,例如批量獲取坐標的地理位置、測量兩個或多個點…

    編程 2025-04-25
  • Resetful API的詳細闡述

    一、Resetful API簡介 Resetful(REpresentational State Transfer)是一種基於HTTP協議的Web API設計風格,它是一種輕量級的…

    編程 2025-04-25
  • 深入淺出統計學

    統計學是一門關於收集、分析、解釋和呈現數據的學科。它在各行各業都有廣泛應用,包括社會科學、醫學、自然科學、商業、經濟學、政治學等等。深入淺出統計學是指想要學習統計學的人能夠理解統計…

    編程 2025-04-25
  • 詳解Elasticsearch中Reindex API的使用

    一、Reindex API是什麼 Reindex API可以將一個或多個索引中的數據複製到另一個索引中,同時允許同時更改文檔、重新組織索引、過濾文檔等操作。這是一個高度可定製的工具…

    編程 2025-04-25

發表回復

登錄後才能評論