axios 请求配置
时间: 2025-01-02 19:14:47 浏览: 15
### Axios 请求配置选项及示例
Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js 中发起 HTTP 请求。通过 `axios` 发起请求时,可以通过传递配置对象来定制请求行为。
#### 配置项说明
配置对象允许设置多个属性来自定义请求的行为:
- **url**: (string) 待请求的服务器 URL。
- **method**: (string) 默认为 GET 方法,可选 POST、PUT 等其他方法[^1]。
- **baseURL**: (string) 将自动加在 `url` 前面,除非 `url` 是绝对路径。可以在创建实例时设定以使之后的请求更加简单。
- **headers**: (object) 自定义请求头信息。
- **params**: (object/string) 添加到 URL 查询字符串中的参数,对于任何非 GET/HEAD 请求会被忽略。
- **data**: (object/string/arraybuffer/buffer/stream/file/blob/form-data) 要作为请求主体发送的数据,在 POST 或 PUT 请求中常用。
- **timeout**: (number) 设置超时时间(ms),超过该时间则取消请求并抛出错误。
- **responseType**: (‘arraybuffer’ | ‘blob’ | ‘document’ | ‘json’ | ‘text’ | ‘stream’) 表明期望返回的内容类型,默认 json。
#### 实际应用案例
下面是一个完整的例子展示如何利用上述配置项构建请求:
```javascript
const axiosInstance = axios.create({
baseURL: 'https://api.example.com',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
// 使用默认实例发出GET请求
axiosInstance.get('/user?ID=12345')
.then(function(response){
console.log(response);
});
// 发送POST请求携带JSON数据体
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
});
```
为了处理特定类型的请求,比如上传文件表单,还可以使用拦截器修改请求配置,如下所示[^2]:
```javascript
axios.interceptors.request.use(config => {
if (config.data instanceof FormData) {
Object.assign(config.headers, config.data.getHeaders());
}
return config;
});
```
此代码片段展示了怎样检查传入的数据是否为 `FormData` 类型,并相应调整头部信息以便正确提交 multipart/form-data 编码格式的数据。
阅读全文