Axios 和 跨域 这两个概念

devtools/2025/4/1 15:26:47/

1. Axios 是什么?

Axios 是一个用于发送网络请求的工具,类似于浏览器自带的 fetch,但更强大、更易用。在前端(Vue)中,我们通常用 Axios 来向后端(Spring Boot)请求数据。

  • 举个例子
    假设你在一个仓储系统中,前端需要从后端获取商品库存信息。这时,前端就可以用 Axios 发送一个请求,比如:

    axios.get('/api/inventory').then(response => {console.log(response.data); // 这里是后端返回的商品库存数据});
    

    后端接收到这个请求后,会处理并返回数据,前端拿到数据后就可以显示在页面上。

  • 为什么用 Axios?
    Axios 支持异步操作(不会阻塞页面),而且可以很方便地处理请求和响应,比如添加请求头、处理错误等。


2. 跨域是什么?

跨域(Cross-Origin)是一个安全机制,用来限制浏览器从一个域名(或端口、协议)去请求另一个域名(或端口、协议)的资源。

  • 举个例子
    假设你的前端运行在 http://localhost:8080,而后端运行在 http://localhost:8081。由于它们的端口不同,浏览器会认为这是两个不同的“域”,默认情况下会阻止这种请求,这就是跨域问题。

  • 为什么会有跨域问题?
    这是浏览器的安全策略,为了防止恶意网站窃取数据。比如,如果一个恶意网站可以随意访问你的银行网站的数据,那就太危险了。


3. 如何解决跨域问题?

在 Spring Boot 和 Vue 的前后端分离项目中,我们可以通过以下几种方式解决跨域问题:

(1)后端解决跨域(推荐)

在 Spring Boot 中,可以通过配置允许特定的前端域名访问后端资源。比如:

@Configuration
public class CorsConfig {@Beanpublic WebMvcConfigurer corsConfigurer() {return new WebMvcConfigurer() {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**") // 允许哪些接口跨域.allowedOrigins("http://localhost:8080") // 允许的前端域名.allowedMethods("GET", "POST", "PUT", "DELETE"); // 允许的请求方法}};}
}

这样,后端就会告诉浏览器:“允许 http://localhost:8080 这个域名的前端访问我的资源。”

(2)前端解决跨域(开发环境)

在 Vue 的开发环境中,可以通过配置代理(proxy)来解决跨域问题。比如在 vue.config.js 中添加:

module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:8081', // 后端地址changeOrigin: true, // 允许跨域pathRewrite: {'^/api': '' // 去掉请求路径中的 /api}}}}
};

这样,前端在开发时发送的请求会被代理到后端,绕过浏览器的跨域限制。


4. 总结

  • Axios前端用来发送请求的工具,方便获取后端数据。
  • 跨域:浏览器的安全机制,限制不同域名之间的请求。
  • 解决跨域:可以通过后端配置允许特定域名访问,或者在前端开发环境中配置代理。

希望这样解释能让你更容易理解!如果还有疑问,欢迎继续提问! 😊


http://www.ppmy.cn/devtools/171514.html

相关文章

Android Compose 层叠布局(ZStack、Surface)源码深度剖析(十三)

Android Compose 层叠布局(ZStack、Surface)源码深度剖析 一、引言 在 Android 应用开发领域,用户界面(UI)的设计与实现一直是至关重要的环节。随着技术的不断演进,Android Compose 作为一种全新的声明式…

vue2相关 基础命令

vue2 基础命令 vue简介,Vue 2 已于 2023 年 12 月 31 日停止维护。详见 Vue 2 终止支持 (EOL)。 安装完 Visual Studio Code后,打开项目目录, 在目录位置输入cmd,然后在命令行输入 code . 就可以在VScode打开项目。 公司的前后端…

线程控制与线程操作

目录 线程的创建 tid pthread_self() 线程的退出 pthread_join 传参问题和返回值问题 pthread_exit 线程取消 线程分离 我们来学习线程的控制与线程操作 线程的创建 我们之前在线程的概念中就讲过了,我们可以通过pthread_create来创建一个或者多个子线程…

第一天学爬虫

阅读提示:我今天才开始尝试爬虫,写的不好请见谅。 一、准备工具 requests库:发送HTTP请求并获取网页内容。BeautifulSoup库:解析HTML页面并提取数据。pandas库:保存抓取到的数据到CSV文件中。 二、爬取步骤 发送请求…

论文阅读:2023 arxiv Provable Robust Watermarking for AI-Generated Text

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

算法 | 麻雀搜索算法原理,公式,改进算法综述,应用场景及matlab完整代码

一、麻雀搜索算法(SSA)原理 1. 算法基础 麻雀搜索算法(Sparrow Search Algorithm, SSA)是2020年提出的一种群体智能优化算法,灵感来源于麻雀群体的觅食与反捕食行为。算法将麻雀分为三类角色:发现者(Producer):适应度最高,负责探索全局最优区域;加入者(Follower)…

全面解读 联核科技四向穿梭车的常见功能介绍

在仓储物流领域,四向穿梭车作为新一代智能仓储设备,正在以高效、灵活、精准的特性重塑行业格局。联核科技作为技术领先的智能仓储解决方案提供商,其四向穿梭车系列(如SS16标准型、SH20重载型、SU13超薄型)集成了多项创…

Python的虚拟环境与打包

目录 背景requirements.txt的使用生成requirements.txt安装requirements.txt Python虚拟环境venv模块创建虚拟环境安装依赖包打包环境 condaconda常用的命令conda-pack打包虚拟环境 PyInstaller 背景 为了将Python程序发布到没有Python环境的客户端PC上运行,就需要…