当前位置:首页 > VUE

vue axios实现登录

2026-02-19 05:11:38VUE

安装 axios 依赖

在项目根目录下运行以下命令安装 axios:

npm install axios

创建 axios 实例

src 目录下新建 utils/request.js 文件,配置基础请求实例:

import axios from 'axios';

const service = axios.create({
  baseURL: 'https://your-api-domain.com', // 替换为实际接口地址
  timeout: 5000,
});

// 请求拦截器(添加token等)
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) => {
    if (error.response.status === 401) {
      // 处理未授权逻辑(如跳转登录页)
    }
    return Promise.reject(error);
  }
);

export default service;

编写登录 API

src/api 目录下创建 auth.js,定义登录接口:

import request from '@/utils/request';

export function login(data) {
  return request({
    url: '/login',
    method: 'post',
    data,
  });
}

实现登录页面逻辑

在登录组件中调用接口并处理结果:

import { login } from '@/api/auth';

export default {
  data() {
    return {
      form: {
        username: '',
        password: '',
      },
    };
  },
  methods: {
    handleLogin() {
      login(this.form)
        .then((res) => {
          localStorage.setItem('token', res.token);
          this.$router.push('/dashboard'); // 跳转到首页
        })
        .catch((error) => {
          console.error('登录失败:', error);
        });
    },
  },
};

模板部分示例

<template>
  <form @submit.prevent="handleLogin">
    <input v-model="form.username" placeholder="用户名" />
    <input v-model="form.password" type="password" placeholder="密码" />
    <button type="submit">登录</button>
  </form>
</template>

关键注意事项

  • 确保后端接口支持跨域(或配置代理)
  • 生产环境需使用 HTTPS 并启用 CSRF 防护
  • 敏感数据(如 token)建议结合 Vuex 或 Pinia 管理

错误处理扩展

可根据业务需求在响应拦截器中补充逻辑:

service.interceptors.response.use(
  (response) => {
    if (response.data.code !== 200) {
      return Promise.reject(new Error(response.data.message));
    }
    return response.data;
  }
);

vue axios实现登录

标签: vueaxios
分享给朋友:

相关文章

vue怎么实现页面返回

vue怎么实现页面返回

Vue 实现页面返回的方法 在 Vue 中实现页面返回功能,可以通过以下几种方式完成,具体取决于项目使用的路由模式和技术栈。 使用 Vue Router 的编程式导航 通过 this.$router…

vue实现tag

vue实现tag

Vue 实现标签(Tag)功能 在 Vue 中实现标签(Tag)功能可以通过多种方式完成,以下是一些常见的方法和实现步骤: 使用动态组件和 v-for 通过 v-for 指令动态渲染标签列表,结合…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue怎么实现

vue怎么实现

Vue 实现方法 Vue 是一个流行的前端框架,用于构建用户界面。以下是几种常见的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。 <input v…

vue实现active

vue实现active

Vue 实现 active 状态的方法 在 Vue 中实现 active 状态可以通过以下几种方式实现,具体取决于使用场景和需求。 使用 v-bind:class 动态绑定类名 通过 v-bind:…

vue实现购票

vue实现购票

Vue 实现购票功能 数据结构设计 购票功能通常需要以下数据结构: 场次信息(时间、地点、价格) 座位信息(可选座位、已售座位) 用户订单信息 示例数据结构: data() { retur…