SpringBoot配置Cross解决跨域问题

CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

简单来说,跨域问题是可以通过nginx来解决的,或者通过jsonp(只支持get请求)来解决。而SpringBoot中也提供了配置方法。

1.利用@CrossOrigin注解,
可放至在类上或者方法上。类上代表整个控制层所有的映射方法都支持跨域请求。

  1. @CrossOrigin(origins = "https://www.nonelonely.com", maxAge = 3600)
  2. @RestController
  3. public class demoController{
  4. @GetMapper("/")
  5. public String index(){
  6. return "hello,CORS";
  7. }
  8. }

2.配置全局CORS配置。
官网也有给出实例,具体如下:

  1. @Configuration
  2. public class MyConfiguration {
  3. @Bean
  4. public WebMvcConfigurer corsConfigurer() {
  5. return new WebMvcConfigurerAdapter() {
  6. @Override
  7. public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins("https://www.nonelonely.com");
  8. }
  9. };
  10. }
  11. }