Axios入门

Axios 入门指南:Vue 3 中的 HTTP 客户端使用

Axios 是一个基于 Promise 的 HTTP 客户端,适用于浏览器和 Node.js 环境,是前端开发中最常用的网络请求工具之一。本指南将以 Vue 3 项目为例,介绍 Axios 的基本使用方法(其他框架的使用方式类似)。

安装 Axios

首先使用包管理器安装 Axios:

bash 复制代码
# npm
npm install axios --save

# yarn
yarn add axios

# pnpm
pnpm add axios

基本使用方法

Axios 提供两种主要使用方式:

  • 通过 axios(config) 发送配置化请求
  • 使用简化方法如 axios.get()axios.post()

所有方法都返回 Promise 对象,可通过 async/await.then() 处理响应。

示例 1:发送 GET 请求

GET 请求通常用于从服务器获取数据。以下示例请求公开测试接口获取用户列表:

vue 复制代码
<template>
  <div>
    <h3>用户列表</h3>
    <ul v-if="users.length">
      <li v-for="user in users" :key="user.id">
        {{ user.name }} - {{ user.email }}
      </li>
    </ul>
    <p v-else-if="loading">加载中...</p>
    <p v-else class="error">{{ errorMsg }}</p>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import axios from 'axios';

const users = ref([]);
const loading = ref(false);
const errorMsg = ref('');

const fetchUsers = async () => {
  try {
    loading.value = true;
    const response = await axios.get('https://jsonplaceholder.typicode.com/users');
    users.value = response.data;
    errorMsg.value = '';
  } catch (err) {
    errorMsg.value = '获取用户失败,请稍后重试';
    console.error('请求错误:', err);
  } finally {
    loading.value = false;
  }
};

onMounted(fetchUsers);
</script>

<style>
.error { color: red; }
</style>

要点说明:

  • axios.get(url) 返回 Promise 对象
  • 响应数据存储在 response.data
  • 使用 try/catch 处理请求可能出现的错误

示例 2:发送 POST 请求

POST 请求通常用于向服务器提交数据:

vue 复制代码
<template>
  <div>
    <h3>创建帖子</h3>
    <button @click="createPost">提交</button>
    <p v-if="result">创建成功!返回的ID:{{ result.id }}</p>
    <p v-if="errorMsg" class="error">{{ errorMsg }}</p>
  </div>
</template>

<script setup>
import { ref } from 'vue';
import axios from 'axios';

const result = ref(null);
const errorMsg = ref('');

const createPost = async () => {
  try {
    const postData = {
      title: '这是一篇测试帖子',
      body: 'Hello Axios!',
      userId: 1
    };
    const response = await axios.post(
      'https://jsonplaceholder.typicode.com/posts',
      postData
    );
    result.value = response.data;
    errorMsg.value = '';
  } catch (err) {
    errorMsg.value = '创建失败,请稍后重试';
    console.error('请求错误:', err);
  }
};
</script>

要点说明:

  • axios.post(url, data) 第二个参数是请求体数据
  • Axios 会自动将数据转为 JSON 格式
  • 响应中包含服务器返回的资源信息

示例 3:通用请求配置

对于复杂场景,可以使用 axios(config) 进行完整配置:

javascript 复制代码
axios({
  method: 'get',
  url: 'https://jsonplaceholder.typicode.com/users',
  params: { id: 1 },
  timeout: 5000,
  headers: { 'X-Requested-With': 'XMLHttpRequest' }
})
.then(response => {
  console.log('请求成功:', response.data);
})
.catch(err => {
  console.log('请求失败:', err);
});

常用配置项

Axios 支持多种请求配置:

  • method: 请求方法(默认 get
  • url: 请求地址(必填)
  • params: GET 请求的查询参数
  • data: 请求体数据
  • timeout: 超时时间(毫秒)
  • headers: 自定义请求头
  • responseType: 期望的响应数据类型

错误处理进阶

错误对象 err 包含详细信息:

javascript 复制代码
try {
  // 请求代码
} catch (err) {
  if (err.response) {
    // 服务器返回错误
    console.log('状态码:', err.response.status);
    console.log('错误信息:', err.response.data);
  } else if (err.request) {
    // 请求已发送但无响应
    console.log('无响应:', err.request);
  } else {
    // 请求配置错误
    console.log('请求错误:', err.message);
  }
}

总结

Axios 使用步骤:

  1. 安装并导入 Axios
  2. 使用简化方法或完整配置发送请求
  3. 处理响应数据
  4. 捕获并处理错误

掌握这些基础知识后,可以进一步学习请求/响应拦截、全局配置等高级用法。

相关推荐
San30.1 天前
Ajax 数据请求:从 XMLHttpRequest 到现代前端数据交互的演进
前端·ajax·交互
遥遥晚风点点2 天前
Spark导出数据文件到HDFS
前端·javascript·ajax
xhxxx2 天前
《大厂面试:从手写 Ajax 到封装 getJSON,再到理解 Promise 与 sleep》
ajax·面试
有点笨的蛋3 天前
从零掌握 Ajax:一次请求带你读懂异步数据加载原理
前端·javascript·ajax
拖拉斯旋风4 天前
深入理解 Ajax:从原理到实战,附大厂高频面试题
前端·ajax
www_stdio4 天前
使用 Ajax 实现异步数据请求:从原理到实践
javascript·ajax·html
_一两风4 天前
深入理解 Ajax:异步 JavaScript 与 XML 的现代应用
ajax
一雨方知深秋5 天前
AJAX学习 ---- axios体验
javascript·http·ajax·axios·url·catch·then
Code知行合壹5 天前
AJAX和Promise
前端·ajax