Как добавить заголовки CORS (Access-Control-Allow-Origin, Access-Control-Allow-Methods) в каждый файл ответов для файлов, обслуживаемых staticHttpHandler в Джерси (версия 2.2)?
Я пробовалдобавить CorsResponseFilter, но это не помогает для статического содержимого.
public static void main(String[] args) throws Exception {
String BASE_URI = "http://localhost:8081/";
final ResourceConfig rc = new ResourceConfig().packages("org.example");
rc.register(CorsResponseFilter.class);
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
File dir = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath());
StaticHttpHandler staticHttpHandler = new StaticHttpHandler(dir.getPath());
server.getServerConfiguration().addHttpHandler(staticHttpHandler, "/data/");
System.out.println("Press Enter to stop Restful service");
System.in.read();
server.shutdownNow();
}
Этот класс CorsResponseFilter добавляет заголовки для каждого ответа, полученного из классов ресурсов приложения Jersey. Но это не добавляет заголовки для статических файлов. Я также проверил в браузере и почтальоне, что файлы доступны (но без заголовка cors). И у меня появляется сообщение об ошибке при попытке извлечь файлы из одностраничного приложения javascript.