当前位置: 首页 > 知识库问答 >
问题:

Spring靴-cors不工作

田琛
2023-03-14

我的服务器运行在localhost:8080(spring boot app)上,前端运行在localhost:3000(angular app)上。问题是我想从前端向后端服务器发出请求。我熟悉cors,但对我来说不起作用。我已将此添加到我的服务器:

    @Bean
WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurerAdapter() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("http://localhost:3000");
        }
    };
}

,但我仍然得到

XMLHttpRequest无法加载http://localhost:8080/cars.请求被重定向到http://localhost:8080/login,这对于需要预飞行的跨源请求是不允许的。

怎么了?

共有1个答案

羊舌承
2023-03-14

根据官方博客文章《Spring框架中的CORS支持》,如果启用了Spring Security性,则必须使用基于过滤器的CORS支持。

@Configuration
public class MyConfiguration {

    @Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("http://domain1.com");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }
}
 类似资料:
  • 我试图从一个应用程序(spring-boot应用程序)调用另一个应用程序(angularjs)上的RESTendpoint。应用程序正在下列主机和端口上运行。 REST应用程序,使用Spring Boot, HTML应用程序,使用angularjs, 处理程序所做的只是根据用户是否登录、身份验证失败或注销,写出类似的JSON响应。如下所示。 对我错过了什么或者做错了什么有什么想法吗?

  • 我在下面的链接中添加了过滤器作为问题的答案 Spring Boot Data Rest+CORS不能正确启用选项/删除

  • 我正在使用keycloak来保护我的rest服务。我引用的是这里给出的教程。我创建了其余部分和前端。现在,当我在后端添加keycloak时,当我的前端调用api时,我会得到CORS错误。 我调用的示例REST API 前端keycloak.json属性包括 我得到的CORS错误

  • 我在我的Spring Boot应用程序中使用JWT。当我试图从Angular 6客户端登录时,我得到了CORS错误 我尝试为添加标题,甚至尝试使用一些chrome扩展,但仍然无法绕过CORS。我可以使用Postman访问登录API,并获得令牌。 Spring引导类 下面是我如何发出post请求来登录,这给了我一个错误 还有Angular中的接口

  • 我试图运行位于https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-hateoas的hateoasSpring启动示例(我试图运行版本1.2.6. RELEASE)。 当访问示例提供的客户服务时,我得到一个MarshalException: 无法列表[Res

  • 我使用的是Spring-BootV1.1.10.Release,用于基于spring的web应用程序。我的数据库是Postgres&用于我的数据库迁移的Flyway。 postgres sql脚本文件由flyway-maven-plugin通过以下maven命令成功执行,即mvn compile flyway:migrate 但是同一个Postgres sql脚本文件抛出了psqlexceptio