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.all 和 axios.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);
    }
  });
相关推荐
web3d5202 小时前
Vue3 地图白屏排查清单:容器、弹窗与 ol-viewport 重复创建
vue.js·gis
hai_android6 小时前
一个公式看懂动态跨表查找:P8 + VLOOKUP
前端·javascript·vue.js
wdssmq9 小时前
「折腾」Vue 简单的状态管理实践
vue.js
Q264336502311 小时前
【有源码】基于Spring Boot和Vue的在线考试与交流系统-教育信息化背景下在线考试与交流一体化平台
java·vue.js·spring boot·mysql·spring·毕业设计·课程设计
苹果二13 小时前
使用Vue的指南
前端·javascript·vue.js
害人终害己13 小时前
‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
前端·javascript·vue.js
excel1 天前
研究 Vue 3 源码的收获
前端·vue.js
vx-程序开发1 天前
【计算机毕设】51300童装超市管理系统的设计与实现
java·vue.js·spring boot·源码·课程设计·毕设·大作业
ym hyd 1111 天前
题库建立与考试系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·vue.js·spring boot·毕设
YZ1225521 天前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker