Spring-Boot CORS跨域设置

现代浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨域的HTTP请求,默认情况下是被禁止的。IP(域名)不同、或者端口不同,都会造成跨域问题。

在实际项目中,前端与后台经常会出现不在同一服务器的情况。并且在开发测试不同环境也会出现在不同服务器的情况,这种情况下,浏览器就会出于安全的考虑禁止访问,这种现象就叫做跨域。

在 Spring-Boot 中配置 CORS 跨域非常简单,在 WebMvcConfigurerAdapter 中直接重写 addCorsMappings 方法即可,具体如下

@Configuration
public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
            .allowedHeaders("*")
            .allowedMethods("*")
            .allowedOrigins("*");
    }
}

这里匹配了所有的URL,允许所有的外域发起跨域请求,允许外域发起请求任意HTTP Method,允许跨域请求包含任意的头信息。


参考链接

Spring Boot设置跨域访问

2 条评论

发表回复

*

  • response 应该也需要设置,因为我发现请求收到了,但是前端收不到数据

  • response 应该也需要设置,因为我发现请求收到了,但是前端收不到数据