js 之 axios

一、介绍
Axios 是前端最常用的「发送网络请求的工具库」,比浏览器原生的 AJAX 更好用,还自带 Promise 支持,
新手上手超简单。


二、安装
Axios 是第三方库,用之前要先 “引入” 到项目里,分两种场景(:
场景 1:新手测试(直接在 HTML 里引入)
不用装任何东西,直接从CDN引入
// 引入 Axios(从CDN服务器加载)
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

场景 2:项目开发(npm 安装)
如果是 Vue/React 项目,先打开终端,执行安装命令:
# npm 安装
npm install axios

安装后,在项目的 JS 文件里引入:
// 引入 Axios
import axios from 'axios';


三、核心基础:Axios 最常用的请求方式
Axios 支持所有 HTTP 请求方法,小白先掌握 2 个核心:GET(查数据)、POST(提交数据)。

1. GET 请求
语法结构:
axios.get('请求地址', {
  params: { // 要传给后端的参数(可选)
    参数名1: 值1,
    参数名2: 值2
  }
})
.then(function(response) {
  // 请求成功:处理返回的数据
  console.log('请求成功:', response.data);
})
.catch(function(error) {
  // 请求失败:处理错误
  console.log('请求失败:', error);
});

示例:
// 向后端请求“ID为1的用户信息”
axios.get('https://api.example.com/user', {
  params: {
    id: 1 // 传给后端的参数:id=1
  }
})
.then(function(res) {
  // res.data 是后端返回的实际数据
  console.log('用户姓名:', res.data.name);
  console.log('用户年龄:', res.data.age);
})
.catch(function(err) {
  console.log('查用户信息失败:', err.message);
});
说明:
params 里的参数会自动拼到请求地址后面,比如上面的请求地址最终是:https://api.example.com/user?id=1;
如果请求地址里有参数,比如https://api.example.com/user/1/,那这种需要直接用动态变量拼接,写成
axios.get(`https://api.example.com/user/${变量名}`, {
  params: {

  }
})
注意用变量时,地址要用反引号包裹,而不是用引号包裹了


2. POST 请求
语法结构:
axios.post('请求地址', {
  // 要提交给后端的参数(请求体),注意这里和get请求的params不一样
  参数名1: 值1,
  参数名2: 值2
}, {
  headers: { // 请求头(可选,比如传token、CSRF令牌)
    'X-CSRFToken': ,
    'Content-Type': 'application/json' // 默认就是这个,新手可以先不写
  }
})
.then(function(response) {
  console.log('提交成功:', response.data);
})
.catch(function(error) {
  console.log('提交失败:', error);
});

示例:
// 提交登录信息(用户名+密码)给后端
axios.post('https://api.example.com/login', {
  username: '小白123',
  password: '123456'
})
.then(function(res) {
  if (res.data.status === 'success') {
    alert('登录成功!');
    console.log('用户token:', res.data.token); // 后端返回的登录凭证
  } else {
    alert('登录失败:' + res.data.message);
  }
})
.catch(function(err) {
  alert('网络错误,登录失败:' + err.message);
});


3. Axios 返回的 response 是什么?
不管 GET/POST,.then() 里的 response 是 Axios 封装的响应对象,核心属性:
axios.get('https://api.example.com/user')
  .then(function(response) {
    console.log(response); // 打印完整响应对象
    // 常用的属性:
    response.data; // 后端返回的实际数据(最核心!)
    response.status; // HTTP状态码(200=成功,404=找不到,500=后端出错)
    response.headers; // 响应头(后端返回的额外信息)
  });


四、高级功能
1. 请求拦截器(请求发送前做统一处理)
2. 响应拦截器(响应返回后做统一处理)
3. 批量请求(同时发多个请求,等所有请求完成)
posted @ 2025-12-11 14:44  有形无形  阅读(9)  评论(0)    收藏  举报