Vue使用axios实现调用后端接口

news2024/11/17 3:53:26

 准备后端接口

首先,我已经写好一个后端接口用来返回我的用户数据,并用Postman测试成功如下:

 以我的接口为例,接口地址为:http://localhost:8080/user/selectAll

返回Json为:

{
    "code": "200",
    "msg": "请求成功",
    "date": [
        {
            "id": 1,
            "username": "乐乐乐",
            "usersex": "女",
            "userborn": "2002-03-15",
            "useraddress": "地球",
            "userphone": "18055985888",
            "useremail": "123@qq.com",
            "avatar": "assets/img/userimg.jpg",
            "state": true,
            "loginID": 1
        },
        {
            "id": 4,
            "username": "nimo",
            "usersex": "男",
            "userborn": null,
            "useraddress": null,
            "userphone": "18058955635",
            "useremail": null,
            "avatar": "assets/img/猎鹰_proc.jpg",
            "state": false,
            "loginID": 0
        }
    ]
}

 axios基础方法

安装好axios,不会的话看一下这个文章:VS code vue 使用ElementUI和axios_vs code使用axios-CSDN博客

在需要接口数据的前端页面中加入下面的代码:

<script>
import axios from "axios"

export default {
  data () {
    return {
      users: [] //用来装返回的数组数据
    }
  },
  mounted () {
    axios.get('http://localhost:8080/user/selectAll').then(res => {
      console.log(res.data)
      this.users = res.data.date
    })
  }
};

</script>

如果控制台输出成功那么就成功了

 封装进阶

还可以再进一步,对axios做一个拦截器处理,对返回的数据和请求做一个统一处理

新建一个名为request.js的文件,代码如下:

import router from "@/router"
import axios from "axios"

const request = axios.create({
  baseURL: 'http://localhost:8080',
  timeout: 30000
})

//response拦截器
//发送请求时统一处理,如加token
request.interceptors.request.use(config => {
  config.headers['Content-Type'] = 'application/json;charset=utf-8'
  let user = JSON.parse(localStorage.getItem("hon-admin") || '{}')
  config.headers['token'] = user.token//设置请求头
  return config
}, error => {
  console.error('request error: ' + error)
  return Promise.reject(error)
})

//response拦截器
//接口响应后统一处理结果
request.interceptors.response.use(
  response => {
    let res = response.data
    //兼容服务端返回的字符串数据
    if (typeof res === 'string') {
      res = res ? JSON.parse(res) : res
    }
    //没有权限跳转到登录
    if (res.code === '401') {
      router.push('/login')
    }
    return res
  },
  error => {
    console.error('response error:' + error)
    return Promise.reject(error)
  }
)

export default request

这是,前端代码为:

<script>
//引用request文件
import request from "@/utils/request"

export default {
  data () {
    return {
      logins: []
    }
  },
  mounted () {
    request.get('/user/selectAll').then(res => {
      this.logins = res.date
      console.log(this.logins)
    })
  }
};

</script>

这样跟规范,代码也更加简洁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1713746.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过AWR结合SQLHC对性能变低的SQL进行分析的过程

ESTDB数据库2020/4/29下午16点附近出现业务卡顿现象。 可以发现问题SQL为(SQL_ID fr0nhywcycrsa)。占问题时段数据库资源消耗的52.69%&#xff0c;通过对此SQL语句的执行效率进行分析&#xff0c;我们发现&#xff1a; 对SQL_ID fr0nhywcycrsa?进行分析&#xff0c;可以发现此…

精通推荐算法8:Embedding表征学习 -- 总体架构

1 Embedding表征学习的总体架构 目前&#xff0c;推荐算法精排模型大多基于Embedding MLP范式&#xff0c;模型底层是Embedding层&#xff0c;作用是将高维稀疏的输入特征转换为低维稠密的特征向量&#xff0c;并实现一定的模糊查找能力。模型上层是MLP层&#xff0c;作用是对…

鸿蒙应用模型:【Ability Kit】简介

Ability Kit简介 Ability Kit&#xff08;程序框架服务&#xff09;提供了应用程序开发和运行的应用模型&#xff0c;是系统为开发者提供的应用程序所需能力的抽象提炼&#xff0c;它提供了应用程序必备的组件和运行机制。有了应用模型&#xff0c;开发者可以基于一套统一的模…

了解可燃气体报警器的检测原理与注意事项

在工业、商业以及家庭生活中&#xff0c;可燃气体报警器作为安全监测的重要设备&#xff0c;发挥着不可忽视的作用。 那么&#xff0c;可燃气体报警器主要检测哪些气体呢&#xff1f; 接下来&#xff0c;佰德将从可燃气体种类、报警器工作原理、检测范围与精度、应用场景与重…

Linux_应用篇(11) 线程

上一章&#xff0c;学习了进程相关的知识内容&#xff0c; 对进程有了一个比较全面的认识和理解&#xff1b; 本章开始&#xff0c; 将学习 Linux应用编程中非常重要的编程技巧---线程&#xff08;Thread&#xff09; &#xff1b;与进程类似&#xff0c;线程是允许应用程序并发…

计算机电子书籍资源转载分享

这篇会很简略&#xff0c;一个博主的宝藏&#xff0c;被我发现了&#xff0c;而且是去年2023年更新的&#xff0c;里面计算机网络的第八版书籍都有&#xff08;谢希仁编著&#xff09; 这是该博主的github上面发布的&#xff1a;zhangyachen/ComputerArchitectureAndCppBooks:…

轻松解决msvcp140_ATOMIC_WAIT.dll丢失问题的5种方法

在电脑使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp140_ATOMIC_WAIT.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时&#xff0c;给使用者带来了很大的困扰。那么&#xff0c;如何解决这个问题呢&#xff1f;小编将为大家介绍5种…

GDPU 操作系统 天码行空13

文章目录 ❌ TODO&#xff1a;本文仅供参考&#xff0c;极有可能有误1.生产者消费者问题&#xff08;信号量&#xff09;&#x1f496; ProducerConsumerExample.java&#x1f3c6; 运行结果 &#x1f496; ProducerConsumerSelectiveExample.java&#x1f3c6; 运行结果 2.实现…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日&#xff0c;2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办&#xff0c;空军军医大学、西安交通大学、西北工业大学承办&#xff0c;通过二十多场论坛、百余项成果&#xff0c;集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

jupyter notebook更改位置

1.找到jupyer的配置文件 一般在c盘用户的.jupter文件夹下 2. 用记事本打开这个配置文件&#xff0c;定位到c.NotebookApp.notebook_dir /path_to_your_directory 替换你的位置 3.找到jupyer图标的位置&#xff0c;打开属性 添加要存放的位置在目标文件的末尾&#xff0c;重新…

Hadoop伪分布式安装教程

Hadoop伪分布式安装教程 一、安装背景1.1 软件列表1.2 系统软件列表 二、安装Hadoop2.1 安装 Java 环境2.1.1 前期准备2.1.2 文件传输2.1.3 解压文件2.1.4 配置 jdk 的环境变量2.1.5 输入 java、javac、java -version 命令检验 jdk 是否安装成功 2.2 Hadoop 下载地址[hadoop](h…

Unix、Linux 软件包管理快速入门对照

Linux&#xff08;RHEL、Ubuntu&#xff09;或者 Unix&#xff08;macOS、FreeBSD&#xff09;可以参看下表快速入门: 命令功能/系统Darwin (macOS)FreeBSDDebian/UbuntuRHEL&#xff08;dnf yum&#xff09;搜索和查找软件包brew searchpkg searchapt listyum list查看软件包…

Compose第一弹 可组合函数+Text

目标&#xff1a; 1.Compose是什么&#xff1f;有什么特征&#xff1f; 2.Compose的文本控件 一、Compose是什么&#xff1f; Jetpack Compose 是用于构建原生 Android 界面的新工具包。 Compose特征&#xff1a; 1&#xff09;声明式UI&#xff1a;使用声明性的函数构建一…

基础9 探索图形化编程的奥秘:从物联网到工业自动化

办公室内&#xff0c;明媚的阳光透过窗户洒落&#xff0c;为每张办公桌披上了一层金色的光辉。同事们各自忙碌着&#xff0c;键盘敲击声、文件翻页声和低声讨论交织在一起&#xff0c;营造出一种忙碌而有序的氛围。空气中氤氲着淡淡的咖啡香气和纸张的清新味道&#xff0c;令人…

达梦 结果拼接=多行结果返回一列字符串.

sql 转换 查询出多行数据 (select t.PROPERTY from JD_CODING t left join DELIVERY_OF c on t.VALUE c.TYPE where t.PROPERTY stackingType group by t.PROPERTY) 更改后 转为一列的拼接字符串 ( select listagg( distinct t.PROPERTY,,) within group ( order by t.P…

RET-CLIP:眼科疾病诊断大模型

RET-CLIP&#xff1a;眼科疾病诊断大模型 RET-CLIP模型的工作流程和架构图表组成部分工作流程 精细拆解应用RET-CLIP模型进行糖尿病视网膜病变分级 论文&#xff1a;http://arxiv.org/pdf/2405.14137v1 代码&#xff1a;https://github.com/sStonemason/RET-CLIP RET-CLIP 是…

jsRpc js逆向远程调用加密函数

rpc介绍&#xff1a; RPC 全称 Remote Procedure Call——远程过程调用,简单说就是为了解决远程调用服务的一种技术&#xff0c;使得调用者像调用本地服务一样方便透明&#xff1b; 使用RPC服务就可以直接在浏览器中的页面js中注入代码&#xff0c;将其作为一个客户端&#xff…

UML 在 vs-code上的快速使用

UML 在 vs-code上的快速使用 1.软件准备工作2.创建第一张甘特图2.1 创建 UML文件: xxxx. puml2.2 输入甘特图代码2.3 VS code 生成甘特图 结束 。 1.软件准备工作 使用的软件为&#xff1a;VS CODE使用插件 &#xff1a; PluntUML2.创建第一张甘特图 2.1 创建 UML文件: xxxx. …

如何进一步缩短Python性能

1、问题背景 给定一个(x,y)处的节点网格&#xff0c;每个节点有一个值(0…255)从0开始。有N个输入坐标&#xff0c;每个坐标在(0…x, 0…y)的范围内。一个值Z&#xff0c;它定义了节点的“邻域”。增加输入坐标及其邻居节点的值。网格边缘之外的邻居被忽略。基准案例&#xff…

Android下HWC以及drm_hwcomposer普法((上)

Android下HWC以及drm_hwcomposer普法((上) 引言 按摩得全套&#xff0c;错了&#xff0c;做事情得全套&#xff0c;普法分析也是如此。drm_hwcomposer如果对Android图形栈有一定研究的童鞋们应该知道它是Android提供的一个的图形后端合成处理HAL模块的实现。但是在分析这个之前…