首页 > 解决方案 > 带有 CORS 的 Spring Boot HTTPS,Angular 5 将所有请求加倍

问题描述

Spring boot(v5) with embeded tomcat我的小Angular 5网站有一个REST API,这个 REST API 是基于https协议的,所以我需要启用cors origin让我的网站与 REST API 通信。我是怎么做到的:

@SpringBootApplication
public class AdminPanelApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminPanelApplication.class, args);
    }

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

但是有了这个cors origin,我的网站开始为所有请求发送 2 个请求,第一个是 OPTION 请求,第二个是真正的请求(获取、发布等)。

我认为这很糟糕,至少对于加载到服务器来说(而不是发送一个请求,我总是发送两个(即使第一个是非常轻量级的option请求),我在任何网站上都没有看到这种行为(例如堆栈溢出 :) )

例子:

在此处输入图像描述

在此处输入图像描述

所以我假设我做错了什么,那么如何以正确的方式设置 cors 起源(或其他东西)?

标签: javaspring-boothttpscorsangular5

解决方案


第一个请求是 OPTIONS 类型,这是正常的。HTTP OPTIONS 方法用于描述目标资源的通信选项。

在此处阅读更多信息:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS


推荐阅读