企业培训笔记:axios 发送 ajax 请求

文章目录

  • axios 简介
  • 一,Vue工程中安装axios
  • 二,编写app.vue
  • 三,编写HomeView.vue
  • 四,Idea打开后台项目
  • 五,创建HelloController
  • 六,配置web访问端口
  • 七,运行项目,查看效果
    • (一)运行后端SpringBoot项目
    • (二)运行前端Vue3项目
    • (三)查看效果
      • 1. 浏览器查看
      • 2. 后端控制台查看


axios 简介

axios 是基于 Promise 的HTTP客户端,用于浏览器和 Node.js,是现代前端开发中最流行的请求库之一。

核心特性

  1. 浏览器与 Node.js 通用
    • 浏览器端基于 XMLHttpRequest,Node.js 端基于 http 模块。
  2. Promise API
    • 支持 async/await 语法,避免回调地狱:
      const response = await axios.get('/api/data');
      
  3. 拦截器
    • 可全局拦截请求和响应(如添加认证头、统一错误处理):
      axios.interceptors.request.use(config => {config.headers.Authorization = 'Bearer token';return config;
      });
      
  4. 请求取消
    • 使用 AbortController 取消未完成的请求:
      const controller = new AbortController();
      axios.get('/api/data', { signal: controller.signal });
      controller.abort(); // 取消请求
      
  5. 自动转换 JSON
    • 响应数据自动解析为 JSON,请求数据自动序列化为 JSON。
  6. 拦截错误处理
    • 统一处理 HTTP 错误状态码(如 401、500):
      axios.interceptors.response.use(response => response,error => {if (error.response.status === 401) {// 处理认证失败}}
      );
      

典型应用场景

  • 前后端数据交互(如获取用户信息、提交表单)。
  • 与 REST API 通信
  • 实时数据更新(如轮询服务器状态)。

一,Vue工程中安装axios

1,单击【Terminal】按钮,打开命令行窗口——输入:【npm Install axios】——单击【Enter】键安装axios。
在这里插入图片描述
2,在项目工程目录中查看安装好的axios。
在这里插入图片描述

二,编写app.vue

在这里插入图片描述

<template><div id="app"> <!-- 添加根元素 --><h1>vue工程</h1><router-view/></div>
</template><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;
}nav {padding: 30px;
}nav a {font-weight: bold;color: #2c3e50;
}nav a.router-link-exact-active {color: #42b983;
}
</style>

三,编写HomeView.vue

在这里插入图片描述

<template><button @click="sendAjax">发送请求</button>
</template><script setup>import axios from "axios";
/*定义函数向后台发送ajax请求*/
function sendAjax(){axios.get("http://localhost:8081/hello?name=zhangsan").then((response)=>{ //回调函数在前端处理后台服务器响应的结果console.log(response);console.log(response.data); //获得服务器响应数据}).catch((error)=>{ //如果发生异常,执行该函数,捕获异常console.log(error);});
}
</script>

四,Idea打开后台项目

1,选择【File】——【Open】。
在这里插入图片描述
2,选择创建好的后台项目,单击【OK】按钮,打开项目。
在这里插入图片描述

3,单击【New Windows】,以新窗口的形式打开这个项目,避免关闭先前打开的Vue项目。
在这里插入图片描述
4,如下图,项目成功打开。
在这里插入图片描述

五,创建HelloController

1,右击【Controller】包——选择【New】——单击【Java Class】。
在这里插入图片描述
2,输入类名【HelloController】——单击【Enter】键,创建类。
在这里插入图片描述
3,编辑HelloController的代码。
在这里插入图片描述

package net.army.controller;import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 功能:测试接收客户端请求* 日期:2025年07月03日* 作者:梁辰兴*/
@RestController
public class HelloController {// 处理客户端请求@RequestMapping("/sayHello")@CrossOrigin //解决跨域问题public String hello(String name){// 将name输出到控制台System.out.println("Hello:"+name);// 将name返回给客户端return "Hello:"+name;}
}

六,配置web访问端口

将端口号更改为8081
在这里插入图片描述

# 应用服务 WEB 访问端口
server.port=8081

七,运行项目,查看效果

(一)运行后端SpringBoot项目

1,单击绿色运行按钮,选择运行方式。
在这里插入图片描述

2,单击【Run ‘SpringBootMyBatisDay…’】,运行项目。
在这里插入图片描述

3,成功运行界面效果图。
在这里插入图片描述

(二)运行前端Vue3项目

1,单击【serve】按钮,运行项目。
在这里插入图片描述
2,成功运行效果图。
在这里插入图片描述

(三)查看效果

1. 浏览器查看

1,单击地址:http://localhost:8080/,进入前端页面;或者复制该地址,粘贴到浏览器的地址栏,按回车键,打开页面。
在这里插入图片描述
2,在浏览器界面,按下F12键,启动开发者模式,单击【控制台】打开控制台界面。
在这里插入图片描述
3,单击界面中的【发送请求】按钮——查看控制台输出的信息。
在这里插入图片描述

2. 后端控制台查看

1,打开后端的项目的Idea窗口,单击【Run】按钮,打开运行窗口。
在这里插入图片描述
2,查看接收到前端发过来的请求内容,zhangsan
在这里插入图片描述

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

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

相关文章

Maven下载与配置对Java项目的理解

目录 一、背景 二、JAVA项目与Maven的关系 2.1标准java项目 2.2 maven 2.2.1 下载maven 1、下载 2、配置环境 2.2.2 setting.xml 1、配置settings.xml 2、IDEA配置maven 一、背景 在java项目中&#xff0c;新手小白很有可能看不懂整体的目录结构&#xff0c;以及每个…

Mars3d的走廊只能在一个平面的无法折叠的解决方案

问题场景&#xff1a;1. Mars3d的CorridorEntity只能在一个平面修改高度值&#xff0c;无法根据坐标点位制作有高度值的走廊效果&#xff0c;想要做大蜀山盘山走廊的效果实现不了。解决方案&#xff1a;1.使用原生cesium实现对应的走廊的截面形状、走廊的坐标点&#xff0c;包括…

LeetCode 每日一题 2025/7/7-2025/7/13

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录7/7 1353. 最多可以参加的会议数目7/8 1751. 最多可以参加的会议数目 II7/9 3439. 重新安排会议得到最多空余时间 I7/10 3440. 重新安排会议得到最多空余时间 II7/11 3169. …

Bash常见条件语句和循环语句

以下是 Bash 中常用的条件语句和循环语句分类及语法说明&#xff0c;附带典型用例&#xff1a;一、条件语句 1. if 语句 作用&#xff1a;根据条件执行不同代码块 语法&#xff1a; if [ 条件 ]; then# 条件为真时执行 elif [ 其他条件 ]; then# 其他条件为真时执行 else# 所有…

uni-app 选择国家区号

uni-app选择国家区号组件 hy-countryPicker 我们在做登录注册功能的时候&#xff0c;可能会遇到选择区号来使用不同国家手机号来登录或者注册的功能。这里我就介绍下我这个uni-app中使用的选择区号的组件&#xff0c;包含不同国家国旗图标。 效果图 别的不说&#xff0c;先来…

客户端主机宕机,服务端如何处理 TCP 连接?详解

文章目录一、客户端主机宕机后迅速重启1、服务端有数据发送2、服务端开启「保活」机制3、服务端既没有数据发送&#xff0c;也没有开启「保活」机制二、客户端主机宕机后一直没有重启1、服务端有数据发送2、服务端开启「保活」机制3、服务端既没有数据发送&#xff0c;也没有开…

《大数据技术原理与应用》实验报告五 熟悉 Hive 的基本操作

目 录 一、实验目的 二、实验环境 三、数据集 四、实验内容与完成情况 4.1 创建一个内部表 stocks&#xff0c;字段分隔符为英文逗号&#xff0c;表结构下所示。 4.2 创建一个外部分区表 dividends&#xff08;分区字段为 exchange 和symbol&#xff09;&#xff0c;字段…

【橘子分布式】Thrift RPC(编程篇)

一、简介 之前我们研究了一下thrift的一些知识&#xff0c;我们知道他是一个rpc框架&#xff0c;他作为rpc自然是提供了客户端到服务端的访问以及两端数据传输的消息序列化&#xff0c;消息的协议解析和传输&#xff0c;所以我们今天就来了解一下他是如何实现这些功能&#xff…

清理C盘--办法

c盘经常爆红1、命令行2、属性3、临时文件

Java-71 深入浅出 RPC Dubbo 上手 父工程配置编写 附详细POM与代码

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框斜体样式架 私有…

创客匠人:创始人 IP 打造的内核,藏在有效的精神成长里

当创始人 IP 成为企业增长的重要引擎&#xff0c;许多人急于寻找 “爆款公式”&#xff0c;却忽略了一个更本质的问题&#xff1a;IP 的生命力&#xff0c;终究源于创始人的精神成长。创客匠人在深耕知识付费赛道的过程中&#xff0c;见证了无数案例&#xff1a;那些能持续实现…

GPT和MBR分区

GPT&#xff08;GUID分区表&#xff09;和MBR&#xff08;主引导记录&#xff09;是两种不同的磁盘分区表格式&#xff0c;用于定义硬盘上分区的布局、位置及启动信息&#xff0c;二者在设计、功能和适用场景上有显著差异。以下从多个维度详细对比&#xff1a; 一、核心定义与起…

c#进阶之数据结构(字符串篇)----String

1、String介绍首先我们得明白&#xff0c;string和String代表的实际上是同一个类型&#xff0c;string是C#中的关键字&#xff0c;代表String类型&#xff0c;因此我们直接来学习String类型。从官方的底层实现代码可以看出&#xff0c;当前String类型实际上就是一个Char类型的聚…

快速排序递归和非递归方法的简单介绍

基本思想为&#xff1a;任取待排序元素序列中 的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右 子序列中所有元素均大于基准值&#xff0c;然后最左右子序列重复该过程&#xff0c;直到所有元…

从零开始的云计算生活——第三十二天,四面楚歌,HAProxy负载均衡

目录 一.HAProxy简介 二.HAProxy特点和优点&#xff1a; 三.HAProxy保持会话的三种解决方法 四.HAProxy的balance 8种负载均衡算法 1&#xff09;RR&#xff08;Round Robin&#xff09; 2&#xff09;LC&#xff08;Least Connections&#xff09; 3&#xff09;SH&am…

策略模式及优化

策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;其核心思想是将算法的定义与使用分离&#xff0c;使算法可以独立于客户端进行变化。它通过定义一系列算法&#xff0c;将每个算法封装到独立的类中&#xff0c;并使它们可以互相替换&#xff0…

微信小程序开发-桌面端和移动端UI表现不一致问题记录

桌面端和移动端UI表现不一致零、引擎说明一、样式不同1、text 单行&#xff1a;1.1 空格开发者工具不展示&#xff0c;手机/PC端正常1.2 正常展示省略号&#xff0c;需要2、点击按钮z-index: -1。webview - 桌面端不行&#xff0c; skyline - 移动端可以&#xff1b;3、其他说明…

极限状态下函数开根号的计算理解(含示意图)

遇到一个挺有意思的题做个记录&#xff1a; 求曲线y (x21)(x2−1)0.5\frac{\left(x^{2}1\right)}{\left(x^{2}-1\right)^{0.5}}(x2−1)0.5(x21)​渐近线的条数 比较明显的x 1是无定义点。但是在求极限的时候发现1和1-得到的极限值似乎不一样。似乎是1是趋向于∞&#xff0c;1…

C++——模版(函数模版和类模版)

C 模板&#xff08;Templates&#xff09;完整介绍模板是 C 中一种强大的泛型编程机制&#xff0c;允许开发者编写与类型无关的代码&#xff0c;从而提高代码的复用性和灵活性。通过模板&#xff0c;可以避免为不同数据类型重复编写相似的函数或类&#xff0c;实现真正的代码复…

Python之cv2:cv2(OpenCV,opencv-python)库pip下载超时、下载失败、无法下载的解决方案大全

Python之cv2&#xff1a;cv2(OpenCV&#xff0c;opencv-python)库pip下载超时、下载失败、无法下载的解决方案大全 在学习和使用 OpenCV&#xff08;Python 包名&#xff1a;opencv-python 或简称 cv2&#xff09;的过程中&#xff0c;很多初学者常常会遇到通过 pip install o…