Spring boot CorsConfiguration.setMaxAge在SpringBoot应用程序中不工作

Spring boot CorsConfiguration.setMaxAge在SpringBoot应用程序中不工作,spring-boot,cors,Spring Boot,Cors,我正在尝试使用corscoConfiguration在应用程序中设置缓存控制。理想情况下,当我在DHC中调用RESTAPI或PostMan时,我应该获得缓存控制最大年龄3600,但我得到的响应如下: 缓存控制:无缓存,无存储,最大年龄=0,必须重新验证 谁来帮我一下。提前谢谢 下面是我的Application.java类 @EnableCaching @SpringBootApplication public class Application extends SpringBootServlet

我正在尝试使用corscoConfiguration在应用程序中设置缓存控制。理想情况下,当我在DHC中调用
RESTAPI
PostMan
时,我应该获得缓存控制最大年龄3600,但我得到的响应如下: 缓存控制:无缓存,无存储,最大年龄=0,必须重新验证

谁来帮我一下。提前谢谢

下面是我的
Application.java类

@EnableCaching
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {


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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);   }

    @Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setMaxAge(3600L);
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("POST");
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }
}

CorsConfiguration.setMaxAge按设计对缓存控制标头没有影响。所以问题中描述的是预期行为。Access Control Max Age是CorsConfiguration.setMaxAge实际影响的标头。看见另请注意:Access Control Max Age标头仅在响应CORS飞行前选项请求时发送。根据文档:“飞行前请求的响应可以被客户端缓存多长时间(以秒为单位)。”因此,如果在GET、POST等响应中发送,浏览器会忽略它。@sideshowbarker,感谢您的响应,我理解您上面所说的,但当我设置“config.setMaxAge(3600L);”这就是为什么我在调用API.CORSCOConfiguration.setMaxAge时,响应中没有获得访问控制最大年龄:3600。设计上故意对缓存控制头没有影响。所以问题中描述的是预期行为。Access Control Max Age是CorsConfiguration.setMaxAge实际影响的标头。看见另请注意:Access Control Max Age标头仅在响应CORS飞行前选项请求时发送。根据文档:“飞行前请求的响应可以被客户端缓存多长时间(以秒为单位)。”因此,如果在GET、POST等响应中发送,浏览器会忽略它。@sideshowbarker,感谢您的响应,我理解您上面所说的,但当我设置“config.setMaxAge(3600L);”这就是为什么我调用API时在响应中没有获得访问控制最大年龄:3600。