在开发Spring Boot和reactjs应用程序期间处理CORS

时间:2019-02-10 16:56:40

标签: reactjs spring-boot

这个问题对我来说是一个新问题,因为我以前曾开发过角度应用程序,但现在我已经将reactjs作为前端技术。

我的问题是CORS。我的react应用程序可以在端口3000上运行,而我的spring boot应用程序可以在8080上运行。在控制器上添加@CrossOrigin可以很好地解决此问题,但是是否可以通过某种方式在前端进行配置?像是当应用程序在本地工作时会翻转并在生产环境中工作时停止该开关之类的开关?

1 个答案:

答案 0 :(得分:0)

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

这是很常见的问题。

在这里看到。

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

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

现在在电话上。如果您还有其他问题,可以随便吃。

添加其他解决方案后的评论

在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注释映射该类