配置 SpringBoot支持跨域请求

一、什么是跨域

  • 跨域问题来源于JavaScript的"同源策略",即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。
  • 也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。


跨域的解决方式不止一种, 下面是springBoot 项目解决跨域问题的一些方法 。

二、通过配置SpringBoot 解决跨域问题

方式一:配置过滤器(全局配置)

@Configuration
public class GlobalCorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
          config.addAllowedOrigin("*");
          config.setAllowCredentials(true);
          config.addAllowedMethod("*");
          config.addAllowedHeader("*");

        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        return new CorsFilter(configSource);
    }
}

方式二:配置拦截器 (全局配置)

@Configuration
public class MyConfiguration extends WebMvcConfigurerAdapter  {

    @Override  
    public void addCorsMappings(CorsRegistry registry) {  
        registry.addMapping("/**")  
                .allowCredentials(true)  
                .allowedHeaders("*")  
                .allowedOrigins("*")  
                .allowedMethods("*");  

    }  
}

方式三: 单个请求的跨域通过 @CrossOrigin 注解来实现

@RequestMapping("/hello")
@CrossOrigin("http://localhost:8080") 
public String hello( ){
	return "Hello World";
}

参考 :

  • https://blog.csdn.net/fxbin123/article/details/80603678
  • https://blog.csdn.net/itcats_cn/article/details/82318092

你可能感兴趣的:(SpringBoot,#,JavaScript,java,javascript,ajax)