SpringBoot 2 前后端分离支持跨域

2018-10-11  本文已影响69人  shen33

大部分SpringBoot 项目都是采用前后端分离的方式,这样一来,就会碰到跨域资源共享的问题。

1、注解实现

在Spring Boot 2中,提供了注解的方式来对CORS跨域访问进行支持。

1.1 在方法上注解

可以将@CrossOrigin注解在方法上。这样该方法可以被跨域访问。

@CrossOrigin
    @GetMapping(value = "/cros")
    public String cros() {
        return "cros";
    }

1.2 在Controller上注解

也可以对整个Controller上注解。这样整个Controller下的所有方法都支持跨域访问。

@RestController
@CrossOrigin
public class CrosController {

}

2、全局配置

在Spring Boot 2中,通过复写WebMvcConfigurer中的addCorsMapping方法,可以达到全局配置的目标。

@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry corsRegistry) {
        // 允许跨域访问资源定义: /api/ 所有资源
        corsRegistry.addMapping("/api/**")
                // 只允许本地的9000端口访问
                .allowedOrigins("http://localhost:9000", "http://127.0.0.1:9000")
                // 允许发送Cookie
                .allowCredentials(true)
                // 允许所有方法
                .allowedMethods("GET", "POST", "PUT", "DELETE", "HEAD");
    }
}
上一篇下一篇

猜你喜欢

热点阅读