在 java spring boot 中覆盖 CORS 策略

Posted

技术标签:

【中文标题】在 java spring boot 中覆盖 CORS 策略【英文标题】:Override CORS policy in java springboot 【发布时间】:2021-12-19 17:06:59 【问题描述】:

我试图让我的前端服务器从我的后端服务器拉出一个 http 请求,但在我的浏览器控制台中收到以下错误:

Access to XMLHttpRequest at 'http://localhost:8080/run' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我知道这是一个安全协议,但是否有一种简单的方法可以解决此问题并允许端口 8080(我的后端)从端口 (3000) 返回调用?

编辑:我使用 java springboot 作为我的后端框架和 React 作为我的前端框架

编辑 2:我安装并使用了 Moesif Origin & CORS Changer 扩展程序,它可以工作,我只是想知道是否有更永久的解决方法。

【问题讨论】:

这可能有助于***.com/questions/40418441/… 【参考方案1】:

一种快速的方法是将@CrossOrigin(导入为org.springframework.web.bind.annotation.CrossOrigin)添加到您的Rest Controller。

【讨论】:

【参考方案2】:

你也可以使用CRA proxy setting。

【讨论】:

【参考方案3】:

这可能会有所帮助:

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

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于在 java spring boot 中覆盖 CORS 策略的主要内容,如果未能解决你的问题,请参考以下文章

运行 Spring Boot fat-jar 时如何覆盖 Java 资源?

如何在 Spring Boot 中覆盖默认 JSON 响应

如何在 Spring Boot 中禁用或覆盖 RequestCacheAwareFilter

我啥时候应该在 Spring Boot 应用程序中覆盖 Spring Security 的 configure(AuthenticationManagerBuilder auth)?

Spring Boot 自定义Jackson ObjectMapper

Spring Boot:在单元测试中用一个覆盖多个bean