怎麼將Vue3 Axios攔截器封裝成request文件
1、建立一個名為request.js的新文件,並匯入Axios:
import axios from 'axios';
2、建立一個名為request的函數,並將其匯出:
創造一個函數名為request,並將其設定為一個帶有基本URL的全新Axios實例。若要在封裝的 Axios 實例中設定逾時,可以在建立 Axios 實例時傳遞 timeout 選項。
export const request = axios.create({ baseURL: 'https://example.com/api', timeout: 5000, // 超时设置为5秒 });
3、在request函數中新增攔截器:
request.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); request.interceptors.response.use(function (response) { // 对响应数据做点什么 return response; }, function (error) { // 对响应错误做点什么 return Promise.reject(error); });
這將會新增一個請求攔截器和一個回應攔截器。可以在這些攔截器中執行所需的操作,例如在請求發送之前新增身份驗證標頭或在回應返回後檢查回應資料是否有誤。
4、最後,匯出request函數:
export default request;
現在,每個經過預先定義攔截器的網路請求都可以透過應用程式中的request函數執行。例如:
import request from './request'; request.get('/users') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });
這將使用封裝的Axios實例發出GET請求,然後使用預先定義的攔截器處理回應
完整範例:
要在發送請求之前攜帶Token和Username,可以使用請求攔截器為所有請求新增驗證標頭,
請求攔截器檢查localStorage中是否存在名為「token」和「username」的值,並將其新增為Authorization和Username標頭。根據實際情況調整這些標頭的名稱和值。
要對回應資料進行操作,使用回應攔截器。在上述範例中,回應攔截器會驗證回應資料裡的「status」屬性是否為「success」。如果不是,則將其視為錯誤,並將其作為異常拋出。響應對象內含異常訊息,包括響應頭、狀態碼及響應體等所有資訊。可以根據實際情況調整這些檢查和異常拋出的邏輯。
import axios from 'axios'; export const request = axios.create({ baseURL: 'https://example.com/api', timeout: 5000, // 超时设置为5秒 }); request.interceptors.request.use(function (config) { // 在发送请求之前添加身份验证标头 config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`; config.headers.Username = localStorage.getItem('username'); return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); request.interceptors.response.use(function (response) { // 对响应数据做些什么 const responseData = response.data; if (responseData.status !== 'success') { const error = new Error(responseData.message || '请求失败'); error.response = response; throw error; } return responseData.data; }, function (error) { // 对响应错误做些什么 return Promise.reject(error); });
以上是怎麼將Vue3 Axios攔截器封裝成request文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

在Vue應用程式中使用axios是十分常見的,axios是一種基於Promise的HTTP客戶端,可以用於瀏覽器和Node.js。在開發過程中,有時會出現「Uncaught(inpromise)Error:Requestfailedwithstatuscode500」的錯誤提示,對於開發者來說,這個錯誤提示可能有些難以理解和解決。本文將會探討這

最近,在使用Vue應用程式開發過程中,我遇到了一個常見的問題:「TypeError:Failedtofetch」錯誤提示。這個問題出現在使用axios進行HTTP請求時,後端伺服器沒有正確回應請求時發生。這種錯誤提示通常表示請求無法到達伺服器,可能是由於網路原因或伺服器未回應造成的。出現這個錯誤提示後,我們該怎麼辦呢?以下是一些解決方法:檢查網路連接由於

Vue中資料請求的選擇:AxiosorFetch?在Vue開發中,處理資料請求是一個非常常見的任務。而選擇使用哪種工具來進行資料請求,則是需要考慮的問題。在Vue中,最常見的兩種工具是Axios和Fetch。本文將會比較這兩種工具的優缺點,並給出一些範例程式碼來幫助你做出選擇。 Axios是一個基於Promise的HTTP客戶端,可以在瀏覽器和Node.

在Vue應用程式中使用axios時出現「Error:NetworkError」怎麼解決?在Vue應用程式的開發中,我們常常會使用到axios進行API的請求或資料的獲取,但是有時我們會遇到axios請求出現「Error:NetworkError」的情況,這時我們該怎麼辦呢?首先,需要了解「Error:NetworkError」是什麼意思,它通常表示網路連

高效利用Vue和Axios實現前端資料的批次處理在前端開發中,資料的處理是一個常見的任務。當我們需要處理大量資料時,如果沒有有效的方法,處理資料將會變得十分繁瑣和低效。 Vue是一種優秀的前端框架,而Axios是一個流行的網路請求庫,它們可以協同工作來實現前端資料的批次處理。本文將詳細介紹如何有效利用Vue和Axios來進行資料的批次處理,並提供相關的程式碼範例

在Vue應用程式中使用axios時出現「Error:timeoutofxxxmsexceeded」怎麼辦?隨著網路的快速發展,前端技術也不斷地更新迭代,Vue作為優秀的前端框架,近年來受到大家的歡迎。在Vue應用程式中,我們常常需要使用axios來進行網路請求,但是有時候會出現「Error:timeoutofxxxmsexceeded」的錯誤

在Vue.js應用程式中,使用axios是非常常見的。 Axios是一個強大的HTTP請求庫,可以讓你輕鬆發送非同步HTTP請求。然而,在使用axios時,會遇到一些錯誤,其中之一就是「TypeError:bindisnotafunction」。這個錯誤通常是由於axios版本不相容Vue.js的原因導致的。讓我們來看看這個錯誤的解決方法。首先,我們需要

Vue實作檔案上傳的完整指南(axios、element-ui)在現代Web應用程式中,檔案上傳已成為一項基本的功能。無論是上傳頭像、圖片、文件或視頻,我們都需要一個可靠的方法來將文件從用戶的電腦上傳到伺服器中。本文將為您提供一份詳細的指南,介紹如何使用Vue、axios和element-ui來實現檔案上傳。什麼是axiosaxios是一個基於prom
