Spring Boot 跨域访问
如何在 Spring Boot 中配置跨域访问呢?
Spring Boot 提供了对 CORS 的支持,您可以实现WebMvcConfigurer 接口,重写addCorsMappings 方法来添加规则允许跨域访问:
允许所有域名都能够跨域访问
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @ProjectName: springboot-blog
* @Package: com.jiangfeixiang.springbootblog.config
* @ClassName: CORSConfig
* @Author: jiangfeixiang
* @email: 1016767658@qq.com
* @Description: 跨域配置
* @Date: 2019/5/13/0013 14:45
*/
@Configuration
public class CORSConfig implements WebMvcConfigurer {
/**
* 跨域
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
// 允许所有跨域访问
registry.addMapping("/**");
}
}
更为精细的控制:
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/get/**")
.allowedOrigins("http://www.aaa.com")
.allowedMethods("POST", "GET");
}
通过上面的配置,只允许来自 [www.aaa.com]的跨域访问,并且限定只能对 /get
下的所有接口进行跨域访问,同时只能访问 POST
和 GET
方法。