一、安裝axios
1. 使用npm安裝axios
npm install axios
通過 npm 安裝 axios 的最佳方式是直接在項目中使用它。
2. 使用CDN
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
可以通過 CDN 使用 axios。請使用最新版本,並將其附加到<head>您的HTML 的標籤中。
二、使用axios發送HTTP請求
1. 發送GET請求
axios.get('https://api.example.com/')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
使用get函數從API獲取數據,並在控制台中列印響應。
2. 發送POST請求
axios.post('https://api.example.com/', {
firstName: 'John',
lastName: 'Doe'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
使用post函數將數據發送到指定API,並在控制台中列印響應。
3. 配置請求
// 設置請求頭
const config = {
headers:{
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
}
}
axios.post('https://api.example.com/', { data }, config)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
可以在發出請求之前通過配置對象傳遞任意數量的選項來自定義請求。上面的示例設置了Content-Type和Authorization頭部。
4. 取消請求
import axios, { CancelToken } from 'axios';
const source = CancelToken.source();
axios.get('https://api.example.com/', {
cancelToken: source.token
}).catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// 處理錯誤
}
});
// 取消請求
source.cancel('Operation canceled by the user.');
當請求已經被發送時,我們可以使用取消令牌來中止請求。以上例子展示了如何創建取消令牌,以及在發送請求時如何將其添加到配置中。
三、axios的攔截器功能
1. 請求攔截器
axios.interceptors.request.use(function (config) {
// 處理請求數據
return config;
}, function (error) {
// 處理請求錯誤
return Promise.reject(error);
});
axios.get('https://api.example.com/')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
我們可以使用請求攔截器在發送請求之前對請求進行一些處理,例如添加請求頭。在上面的例子中,我們向配置對象添加了Auth處理程序。
2. 響應攔截器
axios.interceptors.response.use(function (response) {
// 處理響應數據
return response;
}, function (error) {
// 處理響應錯誤
return Promise.reject(error);
});
axios.get('https://api.example.com/')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
我們也可以使用響應攔截器對響應進行處理,例如對錯誤進行處理或者在響應中添加額外的內容。
四、使用axios的附加功能
1. 並發請求
axios.all([
axios.get('https://api.example.com/1'),
axios.get('https://api.example.com/2')
])
.then(axios.spread(function (response1, response2) {
// handle success
}));
當我們需要一次性發送多個請求時,可以使用axios.all()和axios.spread()來處理響應。
2. CSRF保護
// 設置默認的請求頭部
axios.defaults.xsrfHeaderName = 'X-CSRF-Token';
axios.get('https://api.example.com/')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
在使用axios時,為保護我們的應用程序免受CSRF攻擊,我們可以在axios實例中設置默認請求頭部。
3. 自定義axios實例
// 創建自定義axios實例
const instance = axios.create({
baseURL: 'https://api.example.com/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
instance.get('/')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
我們可以使用axios.create()方法創建自定義axios實例,並進行一些設置,例如超時和默認請求頭部等。
五、總結
本文主要介紹了如何安裝和使用axios來發送HTTP請求。我們介紹了如何發送GET和POST請求,以及如何配置請求、取消請求、使用攔截器、並發請求、保護應用程序免受CSRF攻擊和創建自定義axios實例。有了這些實用的功能,axios的使用變得更加簡單和高效。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293264.html