【问题标题】:@CrossOrigin not working for spring-boot-starter-web 2.5.2@CrossOrigin 不适用于 spring-boot-starter-web 2.5.2
【发布时间】:2021-09-17 21:47:46
【问题描述】:

我有 Spring Boot 休息控制器,它公开了我想在 Angular 12 中使用的某些 API。 在控制器上,我添加了@CrossOrigin,但 spring-boot 似乎没有接收到它,因为即使添加了注释,我也遇到了 Cors 策略问题。

@CrossOrigin(origins = "*")
@RestController
@Scope(WebApplicationContext.SCOPE_REQUEST)
@RequestMapping("api/rest")
public class MyController {

cors error

【问题讨论】:

    标签: angular spring spring-boot rest cors


    【解决方案1】:

    我认为您已经为特定控制器启用了跨域功能。您可以通过在其他控制器上添加@CrossOrigin(origins = "*") 来启用相同功能您可以通过如下创建 bean 来全局配置跨域

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

    【讨论】:

      【解决方案2】:

      您是否尝试将其添加为@CrossOrigin(origins = "http://localhost:<your_port>")

      your_port 是您的 Angular 应用使用的端口?

      【讨论】:

        【解决方案3】:

        试试下面的代码:

        @CrossOrigin(allowCredentials = "true")
        

        【讨论】:

          【解决方案4】:

          如果您从浏览器发送请求,请向浏览器添加 CORS-Origin 扩展。如果@CrossOrigin 不起作用,那么这就是你的问题。给你:

          https://chrome.google.com/webstore/detail/cors-unblock/lfhmikememgdcahcdlaciloancbhjino

          【讨论】:

            猜你喜欢
            • 2018-10-07
            • 2015-06-28
            • 2016-01-29
            • 1970-01-01
            • 2017-02-19
            • 2019-10-28
            • 2019-12-11
            • 1970-01-01
            • 2017-03-23
            相关资源
            最近更新 更多