进阶用法

介绍

通过本章节你可以了解到 ZebraAxios 的一些进阶用法。

拦截器

ZebraAxios 支持请求和响应拦截器,可以在请求发送之前和收到响应之后进行处理:

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });

请求和响应转换器

可以在请求发送之前和接收响应之后对数据进行转换

// 创建 axios 实例
const axiosInstance = axios.create({
    baseURL: 'https://jsonplaceholder.typicode.com',
    timeout: 10000,
    adapter: uniappAdapter,
    transformRequest: [function(data, headers) {
        // 对发送的 data 进行任意转换处理
        console.log("对发送的 data 进行任意转换处理", data)
        return data;
    }],

    // `transformResponse` 在传递给 then/catch 前,允许修改响应数据
    transformResponse: [function(data) {
        // 对接收的 data 进行任意转换处理
        console.log("对接收的 data 进行任意转换处理", data)
        return data;
    }],
})

默认配置

可以指定将被用在各个请求的配置默认值

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;