访问静态资源时CORS错误

问题描述 投票:0回答:3

尽管有以下配置,访问http://localhost:8080/rooms/rooms.json给了我一个CORS错误 - 没有“访问控制允许来源”标头出现在所请求的资源。

我没有问题,要求其由控制器映射其他任何路径。什么是静态资源的问题?如何让CORS请求或排除的资源路径不带弹簧的安全性?

春天引导2.0.5

春季启动网络入门2.0.5

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/rooms/**")
                .addResourceLocations("classpath:/rooms/")
                .setCachePeriod(3600)
                .resourceChain(true)
                .addResolver(new PathResourceResolver());
    }
    @Override
    public void addCorsMappings(final CorsRegistry registry) {
        registry.addMapping("/**");
    }

}
spring spring-boot cors
3个回答
0
投票

@CrossOrigin(value = "*")添加到您的控制器类。你可以与任何特定的URL替换*的情况下,允许该原点而已。


0
投票
    @CrossOrigin(origins = "http://localhost")
    @GetMapping("/rooms/")
    public Object rooms() {
       // your implementation
    }

你可以这样做。


0
投票

更新addCorsMappings像下面它可以工作

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
   @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
       registry.addResourceHandler("/rooms/**")
            .addResourceLocations("classpath:/rooms/")
            .setCachePeriod(3600)
            .resourceChain(true)
            .addResolver(new PathResourceResolver());
}

@Override
public void addCorsMappings(final CorsRegistry registry) {
    registry.addMapping("/**")
        .allowedOrigins("http://localhost:8080")
        .allowedMethods("POST", "GET")
        //.allowedHeaders("header1", "header2", "header3")
        //.exposedHeaders("header1", "header2")
        .allowCredentials(true).maxAge(3600);
}

}
© www.soinside.com 2019 - 2024. All rights reserved.