spring boot2 (31)-cors跨域请求

Sa-Token全局过滤器解决Spring Boot跨域问题实战 跨域(CORS)是前后端分离架构中的常见挑战,本质是浏览器同源策略的安全限制。通过服务端配置Access-Control-Allow-Origin等响应头可实现跨域访问,传统方案需在Nginx或业务代码中处理。Sa-Token作为轻量级Java权限框架,其全局过滤器机制将跨域处理与权限认证结合,提供注解式、配置式和编程式三种实现方案。这种非侵入式设计特别适合Spring Boot项目,既能集中管理CORS策略,又能动态适应不同环境需求。在电商系统等需要严格安全控制的场景中,可结合白名单校验和预检请求优化,实 阅读详情

假如我们开发了一些接口部署到网上,而我们的客户也有一个网站,会通过ajax请求我们的接口,并将结果展示到他们的网站,这就是跨域。


直接请求No Access-Control-Allow-Origin

我现在192.168.112.1上启动一个客户项目,用jquery向接口服务器192.168.112.150:8080/test发起ajax请求

	$.ajax({
		url : 'http://192.168.112.150:8080/test',
		type : 'get',
		success : function(d) {
		}
	});

浏览器控制台会报错:No 'Access-Control-Allow-Origin' header is present on the requested。意思是该资源不允许跨域请求。

配置跨域请求

在接口服务器做以下配置,/**表示所有接口允许跨域,也可以只配置一部分接口,再次请求就不会报错了。

@SpringBootConfiguration
public class Config implements WebMvcConfigurer{

	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**");
	}
}

设置白名单

以上配置,默认所有其他服务都可以发起跨域请求,存在安全问题,修改修改可以设定只允许指定ip跨域请求

		registry.addMapping("/**")
			.allowedOrigins("http://192.168.112.1:8081");
注意:此时在浏览器用localhost请求html是不能跨域的,因为这里配的是ip,所以只认ip域名,参数中可以配多个ip。

关于WebMvcConfigurer

在第19篇中我用extends WebMvcConfigurerAdapter来实现web mvc配置,这在spring boot2中已经不建议使用,而推荐使用implements WebMvcConfigurer接口的方式实现web mvc配置。

SpringBoot跨域配置实战:从CORS原理到包引用错误排查 跨域资源共享(CORS)是现代Web开发中处理前后端分离架构的核心机制,其本质是浏览器基于同源策略实施的安全限制。SpringBoot通过提供@CrossOrigin注解、WebMvcConfigurer全局配置、CorsFilter过滤器等多层次解决方案,让开发者能够灵活地在后端响应中添加正确的CORS头部。在实际工程实践中,依赖管理问题往往成为配置失效的隐蔽根源,典型的包引用错误如ClassNotFoundException或NoClassDefFoundError,通常源于依赖缺失、版本冲突或作用域错 阅读详情

相关推荐

S7-PLCSIM Advanced报错-30:LicenseNotFound根源排查与修复全攻略

在工业自动化仿真领域,软件许可证管理是保障虚拟调试环境稳定运行的基石。当TIA Portal配合S7-PLCSIM Advanced进行S7-1500仿真时,时常遇到因授权验证失败而弹出的LicenseNotFound错误,其错误码-30背后往往涉及许可证服务、授权类型匹配、系统时间甚至杀毒软件干扰等多重因素。理解Automation License Manager的工作原理和底层服务依赖,是高效定位问题的关键。本文从许可证验证机制出发,系统解析-30错误的常见现象与根因,提供从日志分析、服务检查、命令行诊

weixin_34189116的博客 427

前后端分离项目跨域问题的解决方案

Spring Boot 中处理跨域有三种方式,@CrossOrigin 注解、WebMvcConfigurer.addCorsMappings 以及 CorsFilter。前两种本质上通过 CorsInterceptor 触发调用,后者是一个普通的 Filter。 1.CORS 是什么 首先我们要明确,CORS 是什么,以及规范是如何要求的。 CORS 全称是 Cross-Origin Resource Sharing,直译过来就是跨域资源共享。要理解这个概念就需要知道域、资源和同源策略这三个概念。

流苏打的博客 1391

openEuler 22.03 安装及配置Gitlab容器

在 openEuler 22.03 上安装及配置Gitlab容器

轻步玉阶 3317

SpringBoot 中到底如何解决跨域问题?

大家好,我是路人,这是SpringMVC系列第31篇。今天又给大家带来了一个很重要的知识点:SpringMVC中如何处理跨域问题,本文的内容同样适合于SpringBoot1、跨域访问报错当...

路人甲Java 1万+

【土壤普查实战】Python+ArcGIS随机森林模型一键生成土壤类型栅格图

本文详细介绍了如何利用Python和ArcGIS结合随机森林模型实现土壤类型栅格图的自动化生成,大幅提升土壤普查效率。通过环境准备、数据预处理、模型构建与调优等关键步骤,帮助用户掌握从样本点生成到最终栅格图输出的完整流程,适用于大面积区域或样本点较多的土壤分类任务。

weixin_29229989的博客 220

CentOS Stream 9中安装MySQL的详细步骤

本文详细介绍了在CentOS Stream 9系统中如何进行MySQL的在线安装、离线安装以及忘记密码的恢复操作。通过阅读本文,您将能够了解并掌握在CentOS Stream 9上安装MySQL的步骤,以及在遇到忘记密码的情况下的解决方案。

小白典的博客 7258

springboot之跨域

全局跨域: 方式1: springboot2.0 import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.c...

半生@浮名的博客 1586

持续集成介绍及Jenkins自动化测试部署

学习持续集成及jenkins的自动化测试部署

ouihsiad的博客 4579

SpringBoot之MVC配置(WebMvcConfigurer详解)

Spring MVC是一种常用的Java Web框架,它提供了一种基于MVC模式的开发方式,可以方便地实现Web应用程序。在Spring MVC中,WebMvcConfigurer是一种常用的配置方式,可以允许我们自定义Spring MVC的行为,比如添加拦截器、消息转换器等。在本文中,我们将介绍什么是WebMvcConfigurer,以及如何使用它来自定义Spring MVC的配置。

Gefangenes的博客 4702

机器人中的数值优化(一)—— 数学优化、凸集合与凸函数

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例。

慕羽★的博客 2521

C# 零基础入门知识点汇总

本文属于C#零基础入门之百识百例系列目录文章。此系列文章已经完结,欢迎大家点击文中文章链接查看详情进行学习。

陈言必行 -- Unity游戏开发领域优质博主 5353

跨域CORS

一文了解跨域资源共享CORS(同源策略/简单请求/预检请求)。如何解决跨域访问?跨站又是什么?

但行好事,莫问前程 1864

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SpringBoot解决CORS跨域请求

1、同源策略(Same Origin Policy): 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。 同源策略是浏览器安全的基石。 2、跨源资源共享(Cross-Origin Resource Sharing) 为了解决浏览器同源问题,W3C 提出了跨源资源共享,即 CORS。CORS就是为了解决SOP问题而生的。当然还有其他解决SOP的方案。 浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求/预检请求(not-so-

Charge8的博客 1250

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring Boot中对CORS(Cross-Origin Resource Sharing 跨域资源共享)的支持

1、概念 Cors(Cross-Origin Resourece Sharing)是由W3C制定的一种跨域资源共享技术标准,目的是为了解决前端的跨域请求。 2、实验步骤 SpringBoot中配置Cors的步骤如下: 2.1 创建第一个Spring Boot工程(切记:本实验中,第一个工程的tomcat的接口为8086)。本实验中添加Web依赖。 <dependency> ...

Champion-Dai 877

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

解决跨域请求

关于跨域,新建一个config类。 import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; im

MR.Zhang的博客 174

CORS ,前后端访问跨域问题 解决方案

在 Spring Boot 中,可以通过在配置类中添加注解或实现接口并重写内容备份如下:一、Vue.js 中跨域请求未配置 CORS 的常见原因(一)浏览器的同源策略限制浏览器的同源策略限制了从一个源加载的文档或脚本与来自另一个源的资源之间的交互能力。当你的前端应用和后端 API 位于不同的域或端口时,就会触发 CORS 问题。(二)后端未正确配置 CORS如果后端服务器未正确设置 CORS 相关的响应头,浏览器将无法允许跨域请求。

qq_35485206的博客 367

Spring-boot系列(13):跨域的配置CORS和jsonp

什么是跨域 只要协议、域名、端口有任何一个不同,都被当作是不同的域 No ‘Access-Control-Allow-Origin’ header is present on CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用...

精确而优雅 1076

新版 springboot-前后端分离-跨域设置的五种方法以及遇到的坑

用到的版本: springboot 2.6.5 security 5.6.2 spring framework 5.3.17 1 注解 @CrossOrigin (局部) 用在需要跨域的controller接口上或用在某个方法之上 eg: @CrossOrigin(origins = "http://xxx.com", maxAge = 3600) @RestController @RequestMapping("/account") public class AccountController {

醉瑾_的博客 1997

Java后台解决跨域问题之跨域配置类

话不多说,直接上代码 直接在网关中配置就行 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.reactive.CorsWebFilter; import

qq_29864549的博客 518

vue(2)

4,知识点总结跨域问题vue搭建管理系统element-ui入门axios的基本使用当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域前端访问地址后端服务地址出现:错误SM(sprinboot mybatis)如何解决跨域:解决跨域两种方式:jsonpCORS跨域资源共享( CORS() ) 是一种基于HTTP标头的机制,它允许服务器指示除其自身之外的任何来源(域、方案或端口),浏览器应允许从中加载资源。

weixin_64916888的博客 1010
上一篇: centos(15)-静态IP
下一篇: spring boot2 (32)-WebSocket和stomp消息
free_java
博客等级 码龄10年 664粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值