axios请求

安装 Axios

在项目中安装 Axios 依赖,可以通过 npm 或 yarn 进行安装。

bash 复制代码
npm install axios

bash 复制代码
yarn add axios

引入 Axios

在需要使用 Axios 的文件中引入 Axios。

javascript 复制代码
import axios from 'axios';

发起 GET 请求

使用 Axios 发起 GET 请求,获取数据。

javascript 复制代码
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

发起 POST 请求

使用 Axios 发起 POST 请求,发送数据到服务器。

javascript 复制代码
axios.post('https://api.example.com/data', { key: 'value' })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

配置全局默认值

设置 Axios 的全局默认配置,例如 baseURL 和 headers。

javascript 复制代码
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token';

创建 Axios 实例

创建自定义的 Axios 实例,用于不同的 API 配置。

javascript 复制代码
const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' }
});

api.get('/data')
  .then(response => {
    console.log(response.data);
  });

处理请求和响应拦截器

使用拦截器在请求或响应被处理前进行统一处理。

javascript 复制代码
axios.interceptors.request.use(config => {
  config.headers.Authorization = 'Bearer token';
  return config;
}, error => {
  return Promise.reject(error);
});

axios.interceptors.response.use(response => {
  return response.data;
}, error => {
  return Promise.reject(error);
});

取消请求

使用 CancelToken 取消正在进行的请求。

javascript 复制代码
const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('https://api.example.com/data', {
  cancelToken: source.token
}).catch(error => {
  if (axios.isCancel(error)) {
    console.log('Request canceled', error.message);
  }
});

source.cancel('Operation canceled by the user.');

并发请求

使用 axios.allaxios.spread 处理并发请求。

javascript 复制代码
axios.all([
  axios.get('https://api.example.com/data1'),
  axios.get('https://api.example.com/data2')
]).then(axios.spread((response1, response2) => {
  console.log(response1.data, response2.data);
}));

错误处理

统一处理请求中的错误,包括网络错误和服务器错误。

javascript 复制代码
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      console.error(error.response.status, error.response.data);
    } else if (error.request) {
      console.error(error.request);
    } else {
      console.error(error.message);
    }
  });
相关推荐
Cobyte4 小时前
3.响应式系统基础:从发布订阅模式的角度理解 Vue2 的数据响应式原理
前端·javascript·vue.js
军军君015 小时前
Three.js基础功能学习十八:智能黑板实现实例五
前端·javascript·vue.js·3d·typescript·前端框架·threejs
禅思院5 小时前
前端架构演进:基于AST的常量模块自动化迁移实践
前端·vue.js·前端框架
许杰小刀5 小时前
FastAPI + Vue 前后端分离实战:我的项目结构“避坑指南”
前端·vue.js·fastapi
walking9575 小时前
Vue3 日历组件选型指南:五大主流方案深度解析
前端·vue.js·面试
英俊潇洒美少年5 小时前
Vue、React.lazy、React 19 异步组件核心区别
javascript·vue.js·react.js
快乐小土豆~~6 小时前
echarts柱状图的X轴label过长被重叠覆盖
前端·javascript·vue.js·echarts
儒雅的烤地瓜6 小时前
Vue | Vue3中<script setup>用法详解
vue.js·vue3·选项式api·组合式 api·setup方法·<script setup>
小李子呢02116 小时前
前端八股2---Proxy 代理
前端·javascript·vue.js
军军君017 小时前
Three.js基础功能学习十六:智能黑板实现实例三
前端·javascript·css·vue.js·3d·前端框架·threejs