前后端分离项目遇到的跨域问题解决方案(后端为主)

news/2024/9/16 19:37:07/ 标签: spring boot

文章目录

  • 什么是跨域问题?
    • 第一种方式 ⇒ 注解解决方案:
    • 第二种方式 ⇒ 使用 CorsFilter 方法解决:
    • 第三种方式 ⇒ 实现 WebMvcConfigure 接口,添加映射(个人推荐)

什么是跨域问题?

先说问题:
在这里插入图片描述
在前后端接口设置正常的情况下,却不能正常使前后端进行通讯。这是为什么?就产生了以下问题:跨域。

跨域(Cross-Origin Resource Sharing,简称 CORS)是一种安全策略用于限制一个域的网页如何与另一个域的资源进行交互。这是浏览器实现的同源策略(Same-Origin Policy)的一部分,旨在防止恶意网站通过一个域的网页访问另一个域的敏感数据。

由于浏览器实施的同源策略(Same Origin Policy),这是一种基本的安全协议,它确保了浏览器的稳定运行。没有同源策略,浏览器的许多功能可能无法正常工作。整个Web体系建立在同源策略之上,浏览器是这一策略的具体实现。该策略禁止来自不同域的JavaScript脚本与另一个域的资源进行交互。所谓同源,指的是两个页面必须具有相同的协议(protocol)、域名(host)和端口号(port)

第一种方式 ⇒ 注解解决方案:

我们需要在方法前面,加上注解 @CorsFilter 注解,即可解决。(注意!注意!是方法,而不是类上面哦 !!!!)

第二种方式 ⇒ 使用 CorsFilter 方法解决:

代码如下:

在这里插入图片描述

@Configuration
public class CorsConfig {@Beanpublic CorsFilter corsFilter(){CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.addAllowedOrigin("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**",corsConfiguration);return new org.springframework.web.filter.CorsFilter(source);}}

第三种方式 ⇒ 实现 WebMvcConfigure 接口,添加映射(个人推荐)

在这里插入图片描述

代码如下:

package com.xiao.Config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class CorsConfiguration implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOriginPatterns("*").allowedMethods("*").allowedHeaders("*").allowCredentials(true) // 允许保存到 cookie.maxAge(3600);          // cookie 保存的时间 xx 秒}
}

http://www.ppmy.cn/news/1521515.html

相关文章

SpringSecurity Oauth2 - 密码模式完成身份认证获取令牌 [自定义UserDetailsService]

文章目录 1. 授权服务器2. 授权类型1. Password (密码模式)2. Refresh Token(刷新令牌)3. Client Credentials(客户端凭证模式) 3. AuthorizationServerConfigurerAdapter4. 自定义 TokenStore 管理令牌1. TokenStore 的作用2. Cu…

Pixelmator Pro for Mac 专业图像处理软件【媲美PS的修图软件】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试安装完成!!! 效果 一、下载软件 下载软件…

OCSP原理及实践

1.OCSP介绍 在PKI体系中,CA机构颁发合法的证书。使用者可以使用CA根证书验证该证书是否被篡改过,但无法从证书文件验证出证书是否被吊销。因此CA机构会通过发布CRL(Certificate Revocation List)来告知所有人,哪些证书…

游卡,三七互娱,得物,顺丰,快手,oppo,康冠科技,途游游戏,埃科光电25秋招内推

游卡,三七互娱,得物,顺丰,快手,oppo,康冠科技,途游游戏,埃科光电25秋招内推 ①顺丰 【招聘岗位】研发、算法、大数据、产品、项管、设计、人资等 【官方内推码】4FOLXH 【一键内推】…

新增一个数组传递给后端

实现的效果&#xff1a; 页面 <div style"margin-bottom: 10px" v-if"totalPrice"><p style"font-weight: bolder;margin-bottom: 10px">支付计划<el-button type"text" size"small" click"addPayInf…

【Puppeteer】‘left‘ is already pressed, ‘${button}‘ is already pressed 的解决办法

解决过程如下 这是我原来的代码&#xff0c;不管我怎么修改&#xff0c;都一直会出现 left is already pressed 这个错误 找了很多资料 搜了 很多网站都 找不到解决办法 async function dragAndDrop(page, canvasSelector, startX, startY, endX, endY) {const startCoordin…

Oceanbase 数据库审计

数据加密和访问控制可以大幅降低安全风险&#xff0c;但对于具备权限的用户&#xff0c;仍然需要记录其操作&#xff0c;以防止用户登录信息泄露&#xff0c;或者访问权限被滥用。审计功能可以加强企业对数据安全、合规等方面的要求&#xff0c;是跟踪用户行为最主要的工具。 目…

EasyPoi表头字体及样式自定义

最近在研究EasyPoi的excel导出功能&#xff0c;发现其不支持表头各个单元格样式自定义&#xff0c;所以就对其导出功能进行了重写。 一、EasyPoi源码分析 在进行重写之前&#xff0c;首先要了解EasyPoi源码中&#xff0c;对表头处理的代码具体是如何实现的。查看源码可以看出&…

Quartz.Net_侦听触发器

简述 触发器执行任务时存在数个阶段&#xff0c;利用侦听器可以在对应的阶段执行一些代码 如何侦听 1.实现ITriggerListener接口&#xff0c;并实现其函数&#xff0c;具体说明见代码注释 public class DeleteAfterCompleted : ITriggerListener {public string Name > …

【数据结构】排序算法篇一

【数据结构】排序算法篇一 1. 插入排序&#xff08;1&#xff09;基本思想&#xff1a;&#xff08;2&#xff09;动态图解&#xff1a;&#xff08;3&#xff09;具体步骤&#xff1a;&#xff08;4&#xff09;代码实现&#xff1a;&#xff08;5&#xff09;特性总结&#x…

Flutter中添加崩溃分析

前言 Crashlytics的作用是在移动应用程序发生崩溃时&#xff0c;及时收集崩溃信息并发送给开发人员&#xff0c;以帮助开发人员快速定位和修复问题&#xff0c;从而提高应用程序的稳定性和用户体验 Crashlytics的原理是通过集成到应用程序中的SDK&#xff0c;在应用程序崩溃时…

【Next】2. 项目构建

打开 Next.js 的官方文档&#xff1a;https://nextjs.org/docs/getting-started/installation&#xff08;国内文档不够新&#xff09; Next.js 版本 14.2 &#xff0c; Node.js 的版本要求必须 > 18.18。 Next 有两种开发模式&#xff0c;下面讲新的 APP Router。 创建项…

【2024数模国赛赛题思路公开】国赛A题思路丨附可运行代码丨无偿自提

2024年国赛A题解题思路 【题目分析】 问题1&#xff1a;舞龙队沿螺距为55 cm的等距螺线顺时针盘入&#xff0c;给出300秒内舞龙队每秒的位置和速度 分析思路&#xff1a; 螺线方程&#xff1a; 需要建立螺线方程&#xff0c;以便描述龙头及每节板凳的位置。螺线是基于极坐标系…

uni-app应用更新(Android端)

关于app更新&#xff0c;uni-app官方推荐的是 uni-upgrade-center&#xff0c;看了下比较繁琐&#xff0c;因此这里自己实现检查更新并下载安装的逻辑。 1.界面效果 界面中的弹框和 进度条采用了uView 提供的组件 2.检查更新并下载安装 一、版本信息配置在服务端&#xff0c…

【Spring】Spring MVC 入门(2)

本系列共涉及4个框架&#xff1a;Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点&#xff0c;根据序号学习即可。 目录 本系列共涉及4个框架&#xff1a;Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点&#xff0c;根据序号学习即可。…

论文解读 | KDD2024 演化图上的森林矩阵快速计算

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者直播讲解回放&#xff01; 作者简介 孙浩鑫&#xff0c;复旦大学博士生&#xff0c;主要研究方向为大规模图上快速算法设计。 概述 森林矩阵在网络科学、观点动力学和机器学习相关应用中…

docker将容器保存为镜像

docker如何将运行的容器保存为镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 其中&#xff1a; [OPTIONS] 是可选参数&#xff0c;如 -m 用于提供提交信息。 CONTAINER 是要提交的容器的ID或名称。 [REPOSITORY[:TAG]] 是新镜像的仓库名和标签&#xff0c;如果…

翻译论文的关键部分 | Parallel Tiled QR Factorization for Multicore Architectures

SSRFB DTSQT2 DLARFB DGEQT2 1, 对角子矩阵分解 DGEQT2 这个例程被开发出来&#xff0c;用于针对对角Tile子矩阵&#xff1a; &#xff0c;执行不分块的QR分解。 这个运算产生&#xff1a; 一个上三角矩阵 一个酉下三角矩阵&#xff0c;这个矩阵包含 b 个 Householder 反光面…

力扣96-不同的二叉搜索树(Java详细题解)

题目链接&#xff1a;96. 不同的二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 …

2024下半年软考中级【软件设计师】备考攻略

备考软件设计师&#xff0c;准备好复习资料&#xff0c;就是教材真题考试大纲三件套&#xff0c;然后再加3个月左右的复习长度&#xff0c;保证每一天2个小时的复习时间&#xff01; 首先&#xff0c;需要准备的资料书是教材。虽然教材很厚很厚&#xff0c;厚到不想看&#xf…