SpringBoot中跨域问题的解决

springboot 解决跨域问题 JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取! 阅读详情

什么叫跨域

浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.简而言之,就是本地服务器不能调用其他服务器的资源。

导致的问题:

  • web端收不到服务器端的返回消息
  • 导致请求的Session不一致

在SpringBoot中的解决策略

-Controller页面加上@CrossOrigin表示服务器允许跨域

@RequestMapping("/mages")
@Controller
@CrossOrigin
public class Test(){

}

-添加MVC配置

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {


    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

    }



    // 设置跨域访问

    @Override

    public void addCorsMappings(CorsRegistry registry) {

        registry.addMapping("/**")

                .allowedOrigins("*")

                .allowedMethods("GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "TRACE")

                .allowCredentials(true);

    }

}

-若是没有使用redis来进行状态维护的话,跨域会带来Session不一致问题,解决方案为:

 $.ajax({
   url: a_cross_domain_url,
   xhrFields: {
      withCredentials: true
   }
});
另外前端也可以使用JSONP来进行跨域访问,服务器端可以使用Apache或者Nginx来进行反向代理,达到同源的目的,这也是市面上常用的解决方案。
SpringBoot 解决跨域问题的 5 种方案! 跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,想要解决跨域问题,只需要告诉浏览器“我是自己人,不要拦我”就行。它的常见实现方式有 5 种:通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过 ResponseBodyAdvice 实现全局跨域。 阅读详情

相关推荐

【Spring Boot 26】分别在SpringBoot和Vue中解决跨域问题

前端面试题汇总前端面试题是我面试过程中遇到的面试题,每一次面试后我都会复盘总结。

2401_84103903的博客 858

Spring MVC : 概念模型 ResourceHandlerRegistry/ResourceHandlerRegistration

ResourceHandlerRegistry/ResourceHandlerRegistration是Spring MVC的概念模型类,二者配合使用。ResourceHandlerRegistry用于保存服务静态资源图片,css文件或者其他文件的资源处理器(resource handler)的注册信息,而ResourceHandlerRegistration就表示这样的"注册信息",它还包含了对...

Details Inside Spring 2万+

springboot解决跨域问题

随着互联网的发展,现在在企业开发中有好多都是前后端分离的开发模式,这种模式的开发必然造成了请求跨域问题,然而springboot的CORS组件很好的解决了跨域问题,下面怎么就通过一个小实例看看CORS组件是怎么来解决跨域问题的。 首先需要窗前一个服务提供项目,项目代码如下 编写一个服务控制类 package com.fyn.springboot.corsone.controller; i...

druidcaesa的博客 2043

springboot项目静态映射关于路径的填写小总结

总结一下关于springboot项目静态映射路径的填写, 静态映射,文件传输

qq_44750631的博客 5336

springboot 解决跨域问题 | Spring Boot 24

一、为什么会出现跨域问题 出于浏览器的同源策略。 同源策略是一种约定,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的JavaScript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域),就是两个页面具有相同的协议protocol、主机host和端口号port。 二、当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 当前

学Java,找哪吒 4100

MIT6.824-lab2D-2022(日志压缩详细讲解)

从paper中去讲解,并实现关于lab2D的代码。

幸平的博客 6035

笔记——Spring Boot访问静态资源

前言 记录学习历程,在学习笔记中有描述不正确的地方,欢迎小伙伴们评论指正。

游`` 2260

MTK平台TP驱动设备树与GPIO配置实战解析

本文详细解析了MTK平台TP驱动开发中的设备树与GPIO配置实战。通过DCT工具配置GPIO引脚,结合设备树节点定义触摸参数,并分享驱动移植、编译调试技巧及常见问题解决方案,帮助开发者快速掌握MTK触摸驱动开发核心。

ice55的博客 233

每天知识小计10.10

在上述代码中,registry.addInterceptor(sessionInterceptor)和registry.addInterceptor(actAuthInterceptor)分别注册了两个拦截器,并使用.addPathPatterns()方法指定了拦截器要处理的URL路径模式。如果需要修改或新增需要排除的URL路径模式,只需要在SessionInterceptor.excludeUrls()方法中进行修改,而不需要在多个地方的注册代码中逐一修改,减少了重复劳动和出错的可能性。

weixin_43491259的博客 1946

【C2000系列DSP的Bootloader详解】实现过程、流程图与示例代码

C2000 Bootloader 的核心逻辑可概括为 “初始化→选模式→加载程序→校验→跳转” 五步。对于小白来说,无需纠结底层寄存器配置(驱动库已封装),重点理解 “启动流程” 和 “数据传输 + 校验” 的核心思想即可。 通过本文的流程图和示例代码,相信你已经掌握了 C2000 Bootloader 的核心原理。实际开发中,可基于 TI 提供的 Bootloader 示例(C2000Ware 中自带)进行修改,快速适配自己的硬件和应用场景。

昔时扬尘处 371

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1537

【SpringBoot】配置addResourceHandler访问静态资源问题

配置application.yml file: path: windows: D:\desktop\home\idea_home\zhzf\pic\ linux: /Users/lhk/Desktop/zhzf/pic/ 配置WebMvcConfig windowsFilePath:windows系统本地静态资源的真实地址(对应application.yml中的windows) linuxFilePath:linux系统本地静态资源的真实地址(对应application.y

one or only的博客 7208

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

wgl307293845的博客 2079

SpringBoot解决跨域问题

解决浏览器跨域访问问题

程序员青戈 4万+

【天气雷达】双偏振产品-差分传播相移KDP详解

双偏振产品-差分传播相移KDP详解。

珞瑜的博客 2661

家里摄像头录像存 NAS,空间爆满了怎么办?一招实现设定容量自动清理实现循环存储!

📷 家用摄像头录像久了会撑爆 NAS 吗?别担心,这篇文章教如何实现自动清理录像,释放 NAS 空间,避免爆盘🧹

XiaoqiangClub的博客 1882

Spring Boot跨域问题解决

跨域问题本质上是浏览器的行为,它的初衷是为了保证用户的访问安全,防止被恶意网站窃取数据。因此解决跨域问题就只是需要告诉浏览器这是一个安全的请求就可以了,告诉浏览器“我是自己人”。缺点:只能实现局部跨域,当一个项目中存在多个类时,需要给所有类上都添加此注解,比较麻烦。启动服务,访问页面,点击登录按钮,接口访问成功。那怎么告诉浏览器这是一个安全的请求呢?,点击登录按钮,如下所示,出现跨域问题。通常跨域问题使用以下6个方法解决。启动服务,然后直接本地双击打开。实现方式同3.5,不再赘述。优点:实现跨域非常简单。

null 1804

软考备考:《系统规划与管理师教程》(第2版)第2章——数字ZG与数智化发展

🔴数字化转型的定义:数字化转型是建立在数字化转换、数字化升级基础上,进一步触及组织核心业务,以新建一种业务模式为目标的高层次转型。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 960

【后端】SpringBoot用CORS解决无法跨域访问的问题

适用于更底层的控制(不推荐,除非有特殊需求)。@Component@Override.allowedOrigins("http://localhost:3000") // 推荐明确指定前端地址.allowedHeaders("*") // 可选,允许前端发送的自定义 Header// 可选,预检请求的缓存时间(单位秒)

子冉冰清的博客 2058

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

彻底解决跨域问题,Spring Boot五种跨域解决方案

跨域是指在浏览器中,当一个网页的脚本试图去访问另一个网页的资源时,如果这两个网页的域名、协议或端口不一致,就会发生跨域问题。

2301_77899321的博客 2320

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Boot如何彻底解决跨域问题,五种方案来看看吧

在Spring Boot项目中可以通过配置来解决跨域问题,在Spring Boot的配置类中添加一个跨域配置的Bean。

2301_77899321的博客 4878

Spring Boot:如何解决跨域问题 ?

跨域问题现象 been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource 上面的意思就是 你访问一个什么地址被CORS 协议阻止, 没有 在Hearder 里面发现 Access-Control-Allow-Origin 的参数的 资源 跨域问题分析 跨域问题的原因:浏览器出于安全考虑,限制访问本站点以为的资源。 比如你有一个 网站 127..

琦彦 2万+

8种SpringBoot跨域问题的解决方案!

跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议、域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。

m0_69632475的博客 4631

springboot解决跨域问题(CorsConfig )

简介 在开发接口的过程中,最令人头疼一件事就是接口项目有跨域问题,导致前端ajax等访问受限, 所以在搭建一个接口项目之前首先要解决接口的可能跨域问题; springboot作为常用的接口框架,在解决跨域方面也是非常的方便; 项目实践 package com.springboot.sixmonth.common.filter; import org.springframework.co...

alan_liuyue的博客 1万+
上一篇: SpringBoot集成Mybatis+Druid连接池
下一篇: Java数据类型和类型转换
coding_zhao
博客等级 码龄9年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值