前端Axios

前端Axios

创建实例

const instance = axios.create({
    
    
  baseURL: '',
  timeout: 1000,
  headers: {
    
    }
});

请求配置

instance({
    
    
  url: '/user',

  method: 'get',

  // `transformRequest` 允许在向服务器发送前,修改请求体或请求头
  // 它只能用于 'PUT', 'POST' 和 'PATCH' 这几个请求方法
  transformRequest: [(data, headers) => {
    
    
    // 对发送的 data 进行任意转换处理

    return data;
  }],

  // `transformResponse` 在传递给 then/catch 前,修改响应体
  transformResponse: [(data) => {
    
    
    // 对接收的 data 进行任意转换处理

    return data;
  }],

  // 自定义请求头
  headers: {
    
    },

  // `params` 是与请求一起发送的 URL 参数
  // 必须是一个简单对象或 URLSearchParams 对象
  params: {
    
    },

  // `data` 是作为请求体被发送的数据
  // 仅适用 'PUT', 'POST', 'DELETE 和 'PATCH' 请求方法
  data: {
    
    },
  
  // `timeout` 指定请求超时的毫秒数。
  // 如果请求时间超过 `timeout` 的值,则请求会被中断
  timeout: 1000,

  // `auth` HTTP Basic Auth
  auth: {
    
    
    username: 'janedoe',
    password: 's00pers3cret'
  }
})

响应结构

{
    
    
  // `data` 由服务器提供的响应
  data: {
    
    },

  // `status` 来自服务器响应的 HTTP 状态码
  status: 200,

  // `headers` 是服务器响应头
  // 所有的 header 名称都是小写,而且可以使用方括号语法访问
  headers: {
    
    },

  // `config` 是 `axios` 请求的配置信息
  config: {
    
    },

  // `request` 是生成此响应的请求
  // 在node.js中它是最后一个ClientRequest实例 (in redirects),
  // 在浏览器中则是 XMLHttpRequest 实例
  request: {
    
    }
}

拦截器

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

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

猜你喜欢

转载自blog.csdn.net/weixin_60466670/article/details/130610963