Axios是一个基于Promise的HTTP库,可以用于浏览器和Node.js。Axios具有拦截请求和响应的能力,使得我们可以在请求被发送之前或响应被处理之前对其进行修改或查看。下面是一个Axios拦截器的简单示例:
- 添加请求拦截器:
axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 // 例如,可以在这里添加一个请求头,或者设置一个通用参数。 config.headers.Authorization = 'Bearer ' + localStorage.getItem('token'); return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); });
- 添加响应拦截器:
axios.interceptors.response.use(function (response) { // 对响应数据做点什么 // 例如,我们可以根据响应状态码进行特殊处理 if (response.status === 200) { return response; } else { return Promise.reject(response); } }, function (error) { // 对响应错误做点什么 return Promise.reject(error); });
在请求拦截器中,你可以修改
config
对象,这将会影响请求。在响应拦截器中,你可以根据需要处理或修改响应。使用use
方法可以很方便的添加自定义的拦截器。如果你希望在某个请求发送后立即执行某些操作,或者在某个请求返回后立即对它进行处理,那么这些拦截器就非常有用。