Ошибка CORS при доступе к статическому ресурсу - PullRequest
0 голосов
/ 05 февраля 2019

Несмотря на следующую конфигурацию, доступ к http://localhost:8080/rooms/rooms.json дает мне ошибку CORS - Нет заголовка 'Access-Control-Allow-Origin' в запрашиваемом ресурсе .

У меня нет проблем, чтобы запросить любой другой путь, который отображается контроллером.В чем проблема со статическими ресурсами?Как разрешить запрос Cors или исключить пути к ресурсам без защиты Spring?

Spring Boot 2.0.5

Spring Boot Web Starter 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("/**");
    }

}

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019
    @CrossOrigin(origins = "http://localhost")
    @GetMapping("/rooms/")
    public Object rooms() {
       // your implementation
    }

Вы можете сделать таким образом.

0 голосов
/ 05 февраля 2019

Обновление 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);
}

}
0 голосов
/ 05 февраля 2019

Добавьте @CrossOrigin(value = "*") к вашему классу контроллеров.Вы можете заменить * на любой конкретный URL в случае, если разрешено только это происхождение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...