Spring Boot中CORS跨域资源共享

发布时间:2024-11-15 12:04:00 作者:小樊
来源:亿速云 阅读:78

在Spring Boot中,CORS(跨域资源共享)是一种允许来自不同源的Web应用程序之间共享资源的机制。为了在Spring Boot应用程序中实现CORS,你可以使用以下几种方法:

  1. 全局CORS配置

在Spring Boot中,你可以通过实现WebMvcConfigurer接口来配置全局CORS。首先,创建一个新的配置类,然后实现addCorsMappings方法来定义允许的跨域请求。例如:

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 CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 允许跨域请求访问所有路径
                .allowedOrigins("*") // 允许来自任何源的请求
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的HTTP方法
                .allowedHeaders("*") // 允许的请求头
                .allowCredentials(true) // 是否发送Cookie
                .maxAge(3600); // 预检请求的有效时间(秒)
    }
}
  1. 使用@CrossOrigin注解

你还可以在控制器类或方法上使用@CrossOrigin注解来定义允许的跨域请求。例如:

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin(origins = "*", allowedMethods = {"GET", "POST"}, allowedHeaders = "*", allowCredentials = "true")
public class MyController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}
  1. 使用CorsConfigurationSource

在Spring Boot中,你还可以通过配置CorsConfigurationSource来定义允许的跨域请求。例如:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowedOrigins(Arrays.asList("*"));
        config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
        config.setAllowedHeaders(Arrays.asList("*"));
        config.setAllowCredentials(true);
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

这些方法都可以帮助你在Spring Boot应用程序中实现CORS跨域资源共享。你可以根据自己的需求选择合适的方法。

推荐阅读:
  1. 如何实现Springboot跨域CORS处理
  2. Spring Boot通过CORS处理跨域问题的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring boot

上一篇:Spring Boot配置SSL/TLS安全连接

下一篇:Spring Boot集成JWT进行身份验证

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》