【问题标题】:Handling CORS during development Spring Boot and reactjs application在开发 Spring Boot 和 reactjs 应用程序期间处理 CORS
【发布时间】:2019-02-10 16:56:40
【问题描述】:

这个问题对我来说有点新鲜,因为我以前开发过 Angular 应用程序,但现在我将 reactjs 作为前端技术。

我的问题是 CORS。我的 react 应用程序在端口 3000 上运行,我的 spring boot 应用程序在 8080 上运行。在我的控制器上添加 @CrossOrigin 可以很好地解决这个问题,但是有没有办法在前端配置它?当应用程序应该在本地工作并在生产环境中工作时停止此开关之类的东西?

【问题讨论】:

    标签: reactjs spring-boot


    【解决方案1】:

    是的。您可以使用反向代理。

    这是一个很常见的问题。

    看这里。

    http://www.pierre-beitz.eu/2017/01/24/Dealing-with-CORS-in-a-Development-Environment-Using-a-Reverse-Proxy.html

    所有请求都将发送到 api 并进一步解决问题。

    现在在手机上。如果您还有任何问题,可以来 lappy。

    添加另一个解决方案发表评论

    在您的 MainApplication.java 中添加以下代码

    @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;
        }
    

    并用@Configuration注解映射类

    【讨论】:

    • 这个解决方案看起来有点复杂(但我理解它是如何工作的),而且听起来很难在整个开发团队中实施,还有其他方法吗?
    • 这是推荐的方式。还有其他解决方案,例如在所有控制器上添加注释以及您想要列入白名单的 URL。 @CrossOrigin(origins = "localhost:9000", "URL2","URL3")。其他将是
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2020-11-29
    • 2018-11-27
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2016-07-05
    相关资源
    最近更新 更多