Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。它具有以下基础概念和相关特性:
Axios 主要有以下几种请求方法:
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.options(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])
以下是一个使用 Axios 发送 GET 请求的基本示例:
const axios = require('axios');
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('There was an error!', error);
});
问题:请求花费的时间超过了设置的超时时间。
解决方法:
axios.defaults.timeout = 5000; // 设置默认超时时间为5秒
问题:浏览器的同源策略限制了跨域请求。
解决方法:
问题:如何优雅地处理请求错误?
解决方法:
axios.get('/user/12345')
.then(response => {
console.log(response);
})
.catch(error => {
if (error.response) {
// 请求已发出,但服务器响应的状态码不在 2xx 范围内
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// 请求已发出,但没有收到响应
console.log(error.request);
} else {
// 在设置请求时发生了一些事情,触发了错误
console.log('Error', error.message);
}
console.log(error.config);
});
通过以上信息,你应该能够理解 Axios 的基本概念、优势、应用场景以及如何解决常见问题。
领取专属 10元无门槛券
手把手带您无忧上云