一、基础介绍
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可以让我们更快更高效地开发应用程序,并且可以对请求和响应进行自由灵活地控制。