美文网首页
Springboot中跨域问题解决

Springboot中跨域问题解决

作者: gigglesoso | 来源:发表于2019-02-27 10:55 被阅读0次

需求:

在项目开发中,前后端分离,接口联调时候,前端页面直接调取后台接口,前后端开发使用不同的电脑,因此页面的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

相关文章

网友评论

      本文标题:Springboot中跨域问题解决

      本文链接:https://www.haomeiwen.com/subject/vhexuqtx.html