request封装里添加请求拦截和响应拦截
时间: 2023-09-27 14:05:52 浏览: 83
好的,可以为您详细讲解一下如何在request封装中添加请求拦截和响应拦截。
首先,需要使用axios来封装请求。axios是一个基于Promise的HTTP库,可以用于浏览器和Node.js。在使用axios时,可以通过创建axios实例来对请求进行拦截和响应拦截。
以下是一个示例代码,展示如何在请求封装中添加请求拦截和响应拦截:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
// 对响应数据做些什么
return response;
}, function (error) {
// 对响应错误做些什么
return Promise.reject(error);
});
export default instance;
```
在这个示例中,我们创建了一个axios实例,并使用instance.interceptors.request.use()方法来添加请求拦截器,使用instance.interceptors.response.use()方法来添加响应拦截器。在请求拦截器中,可以对请求进行一些处理,例如添加请求头信息、验证用户身份等。在响应拦截器中,可以对响应进行一些处理,例如处理错误信息、统一格式化响应数据等。
值得注意的是,如果需要在多个请求中使用相同的拦截器,可以将拦截器封装成一个函数或者一个模块,然后在需要使用的地方引入。这样可以提高代码的复用性和可维护性。
阅读全文