📜  axios.filter - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:33.426000             🧑  作者: Mango

axios.filter - Javascript

axios.filter是一个Axios拦截器过滤器,它允许你拦截请求或响应,并且在它们到达服务前或者在发送响应之前对其进行修改。

安装
npm install axios --save
基本用法
import axios from 'axios';

// 添加请求拦截器
axios.interceptors.request.use((config) => {
  // 每个请求都会进入这里
  console.log('请求拦截器', config);
  return config;
}, (error) => {
  // 处理请求错误
  console.error('请求错误', error);
});

// 添加响应拦截器
axios.interceptors.response.use((response) => {
  // 每个响应都会进入这里
  console.log('响应拦截器', response);
  return response;
}, (error) => {
  // 处理响应错误
  console.error('响应错误', error);
});

// 现在可以发送请求了
axios.get('https://example.com/api/data')
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.error(error);
  });
组合拦截器
import axios from 'axios';

const instance = axios.create();

// 添加请求拦截器
instance.interceptors.request.use((config) => {
  // 每个请求都会进入这里
  console.log('请求拦截器', config);
  return config;
}, (error) => {
  // 处理请求错误
  console.error('请求错误', error);
});

// 添加响应拦截器
instance.interceptors.response.use((response) => {
  // 每个响应都会进入这里
  console.log('响应拦截器', response);
  return response;
}, (error) => {
  // 处理响应错误
  console.error('响应错误', error);
});

// 可以通过 instance 发送请求
instance.get('https://example.com/api/data')
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.error(error);
  });
移除拦截器
import axios from 'axios';

const instance = axios.create();

// 添加请求拦截器
const requestInterceptor = instance.interceptors.request.use((config) => {
  // 每个请求都会进入这里
  console.log('请求拦截器', config);
  return config;
}, (error) => {
  // 处理请求错误
  console.error('请求错误', error);
});

// 添加响应拦截器
const responseInterceptor = instance.interceptors.response.use((response) => {
  // 每个响应都会进入这里
  console.log('响应拦截器', response);
  return response;
}, (error) => {
  // 处理响应错误
  console.error('响应错误', error);
});

// 移除请求拦截器
instance.interceptors.request.eject(requestInterceptor);

// 移除响应拦截器
instance.interceptors.response.eject(responseInterceptor);
参考