首页 > 其他分享 >Spring Boot 解决跨域问题

Spring Boot 解决跨域问题

时间:2023-11-06 22:34:02浏览次数:35  
标签:跨域 Spring Boot source FilterRegistrationBean new config

在 Spring Boot 中解决跨域问题可以采用以下两种方式:

  1. 使用 @CrossOrigin 注解

在控制器类或方法上添加 @CrossOrigin 注解即可实现跨域访问控制。例如:

@CrossOrigin(origins = "http://localhost:8080")
@RestController
public class MyController {

    @GetMapping("/hello")
    public String getHello() {
        return "Hello, World!";
    }
}

这样,客户端就可以从 http://localhost:8080 访问该控制器的 /hello 接口了。

  1. 配置 CORS 过滤器

在 Spring Boot 中,可以通过配置一个 CORS 过滤器来控制跨域访问。具体做法是在启动类中添加以下代码:

@Bean
public FilterRegistrationBean corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("*");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/**", config);
    FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
    bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return bean;
}

以上代码会将跨域访问策略配置为允许任何来源、任何头部、任何方法,并且允许携带凭证。你也可以根据需要进行调整。

标签:跨域,Spring,Boot,source,FilterRegistrationBean,new,config
From: https://blog.51cto.com/u_16018896/8218889

相关文章

  • springboot mybatis-plus 登录接口
    下面是使用SpringBoot和MyBatis-Plus实现登录接口的示例代码:添加依赖在pom.xml文件中添加以下依赖:<dependencies><!--SpringBoot--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a......
  • springboot+mybatis-plus批量删除
    可以使用Mybatis-Plus提供的deleteBatchIds方法来实现批量删除。示例代码:@AutowiredprivateMybatisPlusMappermybatisPlusMapper;publicvoiddeleteBatch(List<Long>ids){mybatisPlusMapper.deleteBatchIds(ids);}其中,MybatisPlusMapper是你的Mapper接口,继承了BaseMa......
  • 如何在idea中创建一个SpringBoot项目
    在IntelliJIDEA中创建一个SpringBoot项目非常简单。下面是一步一步的指南:打开IntelliJIDEA:启动IntelliJIDEA,确保你已经安装并配置好Java开发环境。创建新项目:如果你在IDEA的欢迎界面,点击"CreateNewProject"。如果你已经有一个项目打开,可以通过选择"File"->"New......
  • Java:SpringBoot实现JDK动态代理和CGLIB动态代理
    (目录)需要代理的对象//接口publicinterfacePayService{voidpay();}//实现publicclassAliPayServiceimplementsPayService{@Overridepublicvoidpay(){System.out.println("AliPayService");}}1.JDK动态代理在JDK动态代......
  • javaWeb&springMVC
    Servlet1:servlet定义servlet是开发动态web的一门技术,通过servlet实现与用户的动态交互。2:使用方式(1)javaWeb中只需要继承HttpServlet接口,重写其中的doGet和doPost方法即可编写一个servlet;写好servlet程序后需要在web.xml文件中编写映射,相当于将我们缩写的servlet注册到web服务......
  • MISBoot低代码开发平台-多语言功能!
    国际化(Internationalization,简称i18n):指软件开发应当具备支持多种语言和地区的功能。也就是说能够具备切换页面显示语言的功能。i18n,其中“I”和“n”分别为首末字符,18则为中间的字符数。        低代码平台/零代码平台中使用国际化多语言(i18n)在未来的发展中已是不......
  • Spring概述,IOC,AOP使用
    Spring简介Spring概述官网地址:https://spring.io/Spring是最受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架来创建性能好、易于测试、可重用的代码。Spring框架是一个开源的Java平台,它最初是由RodJohnson编写的,并且于2003年6月......
  • 做基于spring的管理系统设计Please come to me for
    主要内容:我们是一群经验丰富的程序员,精通多种技术开发,包括基于springboot、基于Vue、基于ssm框架、java、安卓开发以及微信小程序等。希望通过我们的经验帮助你完成理想的作品(毕业设计作品)。下面就来说一说,制作基于Spring的毕业设计需要综合运用所学的知识和技能,包括Java编程语言、......
  • SpringBoot通过自定义注解+反射机制比较两个对象不同的属性值
    publicclassFieldComparisonUtil{/**•直接返回一个新的对象,并且对象的值只有被修改的部分••@paramold•@paramsource•@paramisParent•@paramtarget目标对象•@return/**•@paramold进行属性比较的原始数据•@paramsource进行属性比......
  • 编译u-boot
    编译u-boot源码仓库:https://github.com/u-boot/u-boot‍可以在源码的configs目录下面的看到支持的类型​​‍选择合适的架构,比如说,我现在需要用qemu来跑一个aarch64的内核适合qemu的配置有这些​​‍我们选择qemu和arm64那就是qemu_arm64_defconfig,回到u-......