CORS на Webjars в весенней загрузке?

Я использую Spring Boot 1.4.0.M2 и весна 4.3.0.RC1, пытаясь включить поддержку CORS в простом приложении. У меня это добавлено:

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

I also have webjars pulled in through Gradle, such as:

compile('org.webjars:jquery:2.2.3')

Поддержка CORS отлично работает с моим REST API (via@RestController), но почему-то она не работает при доступе к моим webjars. Например (обновление: менее запутанный пример), запрос:

http://example.org/webjars/bootstrap-datepicker/1.6.0/package.json

получает ответ с правильным содержимым, но без ожидаемых заголовков CORS, который, конечно, побеждает любой фактический запрос CORS. Я не могу понять, почему это было бы исключением из /**сопоставления. Как это исправить?

2 ответа

  1. JavaScript не нуждается в конфигурации cors . Другими словами, Вы можете получить доступ к ресурсам JavaScript с сайта, который не включает cors.

    Из wiki-сайта мы можем очевидно знать, что веб-сайт может свободно вставлять изображения, таблицы стилей, сценарии, iframes, видео и некоторый контент плагинов (например, Adobe Flash) из любого другого домена. Таким образом, даже если вы включаете CORS на своем веб-сайте , но ваш ресурсjavascript, поэтому запрос не добавляет заголовок CORS.

  2. Фрагмент кода, скопированный из документации, является всего лишь примером того, как быстро включить CROS. Этот фрагмент кода не завершен. Используя это, вы испортите то, что WebMvcAutoConfigurationAdapter предоставил для вас.