Axios 全面入门:从基础到实战

发布于:2025-07-20 ⋅ 阅读:(15) ⋅ 点赞:(0)

在前端开发中,我们经常需要和后端交互,比如发送请求获取数据、提交表单、上传文件等。Axios 是一个非常流行的 HTTP 请求库,让这些事情变得简单高效。本文将带你全面认识 Axios,从基础概念到实用代码。


什么是 Axios?

Axios 是一个基于 Promise 的 HTTP 请求库,适用于浏览器和 Node.js。

简单说,Axios 让你在前端项目里很方便地向后端发起 HTTP 请求,比如:

  • 获取列表数据(GET)

  • 提交表单(POST)

  • 更新资源(PUT / PATCH)

  • 删除资源(DELETE)

它对比原生 fetch() 更简单,功能也更强大。


Axios 的核心特点

  • 支持 Promise
  • 请求和响应拦截器
  • 自动转换 JSON 数据
  • 支持超时设置、取消请求
  • 浏览器端支持防止 CSRF
  • Node.js 中支持 http、https 请求

安装 Axios

npm install axios

在 Vue / React 项目里一般在 src/utils/request.js 里封装。

基础用法

import axios from 'axios';

// GET 请求
axios.get('/api/user')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

// POST 请求
axios.post('/api/login', {
  username: 'admin',
  password: '123456'
})
.then(response => {
  console.log(response.data);
});

携带 Token(常见于登录后请求)

axios.get('/api/user', {
  headers: {
    Authorization: 'Bearer your_token_here'
  }
});

请求拦截器和响应拦截器

在项目里,为了统一管理 token、报错、loading,一般会配置 Axios 拦截器。

const service = axios.create({
  baseURL: '/api',
  timeout: 10000
});

// 请求拦截器
service.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers['Authorization'] = 'Bearer ' + token;
  }
  return config;
}, error => {
  return Promise.reject(error);
});

// 响应拦截器
service.interceptors.response.use(response => {
  return response.data;
}, error => {
  console.error('请求失败:', error);
  return Promise.reject(error);
});

结合前后端实战(以若依框架为例)

  • 前端 Axios 请求:

    • 请求拦截器:自动加 token、处理参数

    • 响应拦截器:处理状态码(如 401 重登、500 报错)

  • 后端 Spring Boot + Spring Security:

    • 校验 token 确认用户身份

    • 使用 @PreAuthorize 注解进行接口权限控制

这种前后端结合,确保了请求安全和操作权限。

设置超时时间

axios.get('/api', { timeout: 5000 });

取消请求

const controller = new AbortController();
axios.get('/api', { signal: controller.signal });
// 需要取消时:
controller.abort();

文件上传(带进度)

axios.post('/upload', formData, {
  headers: { 'Content-Type': 'multipart/form-data' },
  onUploadProgress: progressEvent => {
    console.log('上传进度:', Math.round(progressEvent.loaded / progressEvent.total * 100));
  }
});

总结

Axios 是前端开发中必不可少的利器,简单易用、功能全面。它不仅是发送 HTTP 请求的工具,更是连接前后端、统一管理请求逻辑的重要桥梁。掌握 Axios,可以让你的项目更加高效、代码更优雅。


网站公告

今日签到

点亮在社区的每一天
去签到