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. 捕获并处理错误

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

相关推荐
chilavert3183 小时前
技术演进中的开发沉思-235 Ajax:动态数据(上)
javascript·ajax·okhttp
chilavert3183 天前
技术演进中的开发沉思-228 Ajax: Aptana开发
前端·javascript·ajax
士心凡3 天前
Spark
大数据·ajax·spark
beijingliushao4 天前
100-Spark Local模式部署
大数据·python·ajax·spark
by__csdn5 天前
Ajax与Axios终极对比指南全方位对比解析
前端·javascript·ajax·okhttp·typescript·vue·restful
by__csdn5 天前
Vue3+Axios终极封装指南
前端·javascript·vue.js·http·ajax·typescript·vue
唐古乌梁海5 天前
【AJAX】AJAX详解
前端·ajax·okhttp
Beginner x_u5 天前
从接口文档到前端调用:Axios 封装与实战全流程详解
前端·javascript·ajax·接口·axios
7澄15 天前
Servlet 前后端交互实战(登录/注册案例)
运维·服务器·ajax·servlet·jquery·form·前后端交互
by__csdn5 天前
Axios封装实战:Vue2高效HTTP请求
前端·javascript·vue.js·ajax·vue·css3·html5