Axios是一个基于Promise的HTTP请求客户端,用于浏览器和Node.js平台。它提供了一系列强大的功能,使得发送HTTP请求变得简单而方便。下面我们将从安装、基本用法、进阶用法和常见问题等方面全面介绍Axios。
一、安装
首先,您需要安装Axios。您可以使用npm或yarn进行安装:
npm install axios
或者
yarn add axios
二、基本用法
安装完成后,您可以在代码中引入Axios并发送HTTP请求。下面是一些常见的请求方法:
- GET请求
axios.get('/users').then(function (response) {console.log(response.data);}).catch(function (error) {console.log(error);});
- POST请求
axios.post('/users', {name: 'John',age: 30}).then(function (response) {console.log(response.data);}).catch(function (error) {console.log(error);});
- 配置请求参数
您可以在请求时传递配置参数,覆盖默认配置。例如:axios.get('/users', {params: {id: 12345,name: 'John'}}).then(function (response) {console.log(response.data);}).catch(function (error) {console.log(error);});
三、进阶用法
Axios还提供了一些高级特性,让您的请求更加灵活和强大。下面是一些常用的特性: - 拦截请求和响应
您可以在请求被发送之前或响应被处理之前对其进行拦截,并执行一些操作。例如:
```javascript
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么,比如添加认证信息、修改请求参数等。config对象包含了请求的所有信息。如果返回一个promise,则请求会等待promise解决或拒绝。如果返回一个非promise对象,则请求会立即发送。如果返回一个空值(null或undefined),则什么也不做,直接继续请求流程。例如:在发送每个请求之前添加一个特定的header: 修改config对象: 添加自定义的headers信息到config对象中: config.headers[‘X-Custom-Header’] = ‘custom value’; 添加认证信息: config.auth = { username: ‘john_doe’, password: ‘123456’ }; 取消请求: 如果你想取消一个请求,你可以简单地返回一个已解决的Promise: return Promise.resolve(); 如果你想取消一个请求并抛出一个错误,你可以返回一个被拒绝的Promise: return Promise.reject(new Error(‘Request cancelled’)); 如果你想取消一个请求并抛出一个错误,但是这个错误没有被抛出(比如被catch捕获了),那么这个错误会被发送到服务器端。在上面的例子中,我们取消了一个GET请求并抛出了一个错误。但是这个错误被catch捕获了,所以它不会被发送到服务器端。如果你想取消一个请求并抛出一个错误,但是这个错误没有被抛出(比如被catch捕获了),那么你可以使用rejectWithException方法来代替reject方法。 rejectWithException方法会抛出一个被拒绝的Promise,这个Promise的reason属性是一个Error对象。例如: return Promise.rejectWithException(new Error(‘Request cancelled’)); 如果你想取消一个请求并抛出一个错误,但是这个错误没有被抛出(比如被catch捕获了),那么你可以使用throwError方法来代替throw语句。 throwError方法会抛出一个被拒绝的Promise,这个Promise的reason属性是一个Error对象。例如: throw throwError(new Error(‘Request cancelled’)); 在上面的例子中,我们使用了rejectWithException方法来取消了一个GET请求并抛出了一个错误。这个错误被catch捕获了,所以它不会被发送到服务器端。如果你想取消一个请求并抛出一个错误,但是这个错误没有被