2017-02-06 2 views
1

Попробуйте 1Как включить доступ-Контроль-Разрешить-Происхождение в Undertow?

builder.setHandler(new HttpHandler() { 
       @Override 
       public void handleRequest(final HttpServerExchange exchange) throws Exception { 
        exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Origin"), "*"); 
        exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Methods"), 
          "GET, POST, PUT, DELETE, OPTIONS"); 
        String ss = exchange.getResponseHeaders().get(new HttpString("Access-Control-Allow-Headers")) 
          .getFirst(); 
        System.out.println(ss); 
        exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Headers"), ss); 
       } 
      }); 

Попробуйте 2

HttpHandler enHandler = new SetHeaderHandler("Access-Control-Allow-Origin", "*"); 
builder.setHandler(enHandler); 

Я попытался это выше параметры, чтобы CORS в моей службе прибойной, но он не работает с моим угловым UI. отлично работает в почтальоне.

+0

Когда вы говорите, не работаете, то, что вы имеете в виду? Можете ли вы рассказать нам, какие заголовки идут в запросе, и какие заголовки возвращаются в ответ? – aramaki

ответ

1

он работает после добавления этих строк

 ResteasyDeployment rd = new ResteasyDeployment(); 
     CorsFilter filter = new CorsFilter(); 
     filter.setAllowedMethods("GET,POST,PUT,DELETE,OPTIONS"); 
     filter.getAllowedOrigins().add("*"); 
     rd.setProviderFactory(new ResteasyProviderFactory()); 
     rd.getProviderFactory().register(filter); 
Смежные вопросы