springboot 解决前后端分离时的跨域问题
2018-06-15 14:16
911 查看
springboot 解决前后端分离时的跨域问题
方式1:在controller的方法上添加注解
- 还可以在控制器类级别上添加这个注释,以便在这个类的所有处理程序方法上启用CORS。
import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CorsController { @CrossOrigin(origins = "*") @GetMapping("/testCors") public String testCors() { return "success"; } }
方式2:在启动类配置全局cors(springboot2.0已经过时)
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/*").allowedOrigins("*"); } }; } }
==替换方案:==
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/*").allowedOrigins("*"); } }; } }
方式3:注册corsFilter
import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); // 1 corsConfiguration.addAllowedOrigin("*"); // 2 corsConfiguration.addAllowedHeader("*"); // 3 corsConfiguration.addAllowedMethod("*"); corsConfiguration.setAllowCredentials(true); return corsConfiguration; } @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); // step 4 source.registerCorsConfiguration("/**", buildConfig()); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); bean.setOrder(Ordered.HIGHEST_PRECEDENCE); return bean; } }阅读更多
相关文章推荐
- spring-boot前后端分离跨域问题的解决,主要是使用cors
- vue+springboot前后端分离实现单点登录跨域问题解决方法
- springboot前后端分离解决跨域
- 后端(springboot)解决跨域问题
- 后端(springboot)解决跨域问题
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十二):解决跨域问题
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
- springboot中通过cors协议解决跨域问题
- 解决前后端分离跨域问题
- vue2 前后端分离项目ajax跨域session问题解决方法
- [置顶] spring boot项目实战:跨域问题解决
- Spring boot 和Vue开发中CORS跨域问题解决
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(二)
- 前后端分离跨域问题解决方案
- 前后端分离跨域问题解决方案
- [置顶] spring boot项目实战:跨域问题解决
- [置顶] spring boot项目实战:跨域问题解决
- SpringBoot后台解决浏览器跨域问题
- ajax跨域问题解决(spring boot)
- [置顶] spring boot项目实战:跨域问题解决