axios.create()
时间: 2025-05-17 14:17:19 浏览: 26
### 使用 Axios 创建自定义实例的方法
Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。`axios.create` 方法允许开发者通过配置参数创建一个新的 Axios 实例[^1]。这使得可以轻松地设置默认选项并覆盖全局配置。
以下是 `axios.create` 的基本用法:
#### 基本语法
```javascript
const instance = axios.create([config]);
```
其中 `[config]` 参数是一个对象,用于指定请求的默认配置。这些配置项会应用于该实例发起的所有请求。
#### 配置选项
常见的配置选项包括但不限于以下内容:
- **baseURL**: 请求的基础 URL。
- **timeout**: 设置超时时间(单位为毫秒)。
- **headers**: 默认头部信息。
- **params**: 查询字符串参数。
- **responseType**: 指定响应数据类型(如 `'json'`, `'arraybuffer'` 等)。
#### 示例代码
下面展示了一个完整的例子,说明如何使用 `axios.create` 来定制化 Axios 实例。
```javascript
// 创建一个具有特定配置的新 Axios 实例
const customInstance = axios.create({
baseURL: 'https://api.example.com', // 设置基础 URL
timeout: 5000, // 超时时间为 5 秒
headers: { // 自定义请求头
Authorization: 'Bearer your_token_here',
'Content-Type': 'application/json'
}
});
// 发起 GET 请求
customInstance.get('/users')
.then(response => {
console.log('Users:', response.data);
})
.catch(error => {
console.error('Error fetching users:', error);
});
// 发起 POST 请求
customInstance.post('/login', {
username: 'admin',
password: 'password123'
})
.then(response => {
console.log('Login successful:', response.data);
})
.catch(error => {
console.error('Login failed:', error);
});
```
上述代码片段展示了如何利用 `axios.create` 构建带有预设配置的 Axios 实例,并执行不同类型的网络请求。
#### 进一步扩展功能
除了简单的配置外,还可以通过拦截器进一步增强 Axios 实例的功能。例如,在每次请求前动态修改请求头或处理错误响应。
```javascript
// 添加请求拦截器
customInstance.interceptors.request.use(config => {
config.headers['Timestamp'] = Date.now(); // 动态添加时间戳到请求头
return config;
}, error => {
return Promise.reject(error);
});
// 添加响应拦截器
customInstance.interceptors.response.use(response => {
return response; // 对返回的数据不做任何额外操作
}, error => {
if (error.response.status === 401) {
console.warn('Unauthorized access detected.');
}
return Promise.reject(error);
});
```
以上方法能够帮助开发人员更灵活地管理 API 请求流程以及异常情况下的行为逻辑。
阅读全文
相关推荐


















