java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot接口配置跨域

SpringBoot给所有接口配置跨域的方法详解

作者:兔子先生°

简单而言,跨域请求就是当一台服务器资源从另一台服务器(不同 的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求,本文给大家介绍了SpringBoot给所有接口配置跨域的方法,需要的朋友可以参考下

跨域配置方法

在Spring Boot中,可以通过以下几种方式为所有接口统一配置跨域支持:

关键配置说明:

全局CORS配置

通过WebMvcConfigurer接口实现全局跨域配置:

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(false)
                .maxAge(3600);
    }
}

使用注解方式

在启动类上添加@CrossOrigin注解:

@SpringBootApplication
@CrossOrigin(origins = "*")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

过滤器方式

创建CORS过滤器实现全局跨域:

@Component
public class CorsFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
        throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "*");
        chain.doFilter(req, res);
    }
}

配置文件方式

application.propertiesapplication.yml中配置:

# application.properties
spring.mvc.cors.allowed-origins=*
spring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE

# application.yml
spring:
  mvc:
    cors:
      allowed-origins: "*"
      allowed-methods: GET,POST,PUT,DELETE

注意事项

以上就是SpringBoot给所有接口配置跨域的方法详解的详细内容,更多关于SpringBoot接口配置跨域的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文