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);
    }
  });
相关推荐
南知意-5 分钟前
从零搭建 Live2D 看板娘教程(自建API避墙版)
服务器·前端·vue.js·开源·博客·美化·看板娘
来杯三花豆奶12 分钟前
Vue 2 中 Store (Vuex) 从入门到精通
前端·javascript·vue.js
四瓣纸鹤12 分钟前
从vue2和vue3的区别聊起
vue.js·状态模式
老华带你飞1 小时前
个人网盘管理|基于springboot + vue个人网盘管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
刘一说1 小时前
Vue单页应用(SPA)开发全解析:从原理到最佳实践
前端·javascript·vue.js
疯狂成瘾者1 小时前
前端vue核心知识点
前端·javascript·vue.js
我是小路路呀10 小时前
element级联选择器:已选中一个二级节点,随后又点击了一个一级节点(仅浏览,未确认选择),此时下拉框失去焦点并关闭
javascript·vue.js·elementui
JIngJaneIL11 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
澄江静如练_11 小时前
列表渲染(v-for)
前端·javascript·vue.js
Loo国昌11 小时前
Vue 3 前端工程化:架构、核心原理与生产实践
前端·vue.js·架构