Springboot中跨域问题解决

需求:

在项目开发中,前后端分离,接口联调时候,前端页面直接调取后台接口,前后端开发使用不同的电脑,因此页面的ajax请求会发送不成功。

解决方案:

springboot的官方文档中给出了相应的解决方案,只需要配置一个WebMvcConfigurer,这种是全局配置,即所有请求都可以。代码如下:

@Configuration
public class MyConfiguration {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**");
            }
        };
    }
}

也可以根据自己的需求自定义:

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**")
        .allowedOrigins("http://domain2.com")
        .allowedMethods("PUT", "DELETE")
            .allowedHeaders("header1", "header2", "header3")
        .exposedHeaders("header1", "header2")
        .allowCredentials(false).maxAge(3600);
}

除上述的全局配置外:
也可以直接针对某个controller或者具体到某一个方法进行设置,使用注解@CrossOrigin即可,该注解可以作用于类上,也可以作用于方法上。
具体可以参考springboot官方文档:
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容