一、基礎介紹
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
微信掃一掃
支付寶掃一掃