Автономные проблемы с Http CORS - PullRequest
0 голосов
/ 12 апреля 2020

В настоящее время я пытаюсь создать простой http-сервер, который работает на ip: 8080 и должен принимать звонки с веб-сайта, работающего на ip: 3000. Таким образом, я столкнулся с проблемами CORS. Я пытался разрешить их с помощью заголовка * Allow-Control, но не могу заставить его работать. Я использую сервер undertow в качестве отдельного элемента. Вот почему я не могу использовать, например, фильтры Wildflys CORS или аналогичные.

Я получаю сообщение об ошибке, что в предварительном запросе не задано поле Allow-Control. Когда я запускаю вызов Почтальона, он работает и, что более важно, устанавливаются поля заголовка.

Что я делаю не так?

Привет Pascal

 public void createAndStartServer() {
    _server = Undertow.builder()
        .addHttpListener(PORT, "localhost", ROUTES).build();
    _server.start();
  }

  private void handleLoginRequest(HttpServerExchange exchange){
    exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Origin"), "*");
    exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Headers"), "origin, content-type, accept, authorization, auth-token, username, password");
    exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Credentials"), "true");
    exchange.getResponseHeaders().put(new HttpString("Access-Control-Allow-Methods"), "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    exchange.getResponseHeaders().put(new HttpString("Access-Control-Max-Age"), "1209600");
    SimpleUserResponse rsp = new SimpleUserResponse(false);
    if(exchange.getRequestHeaders().contains(HEADER_USERNAME)
        && exchange.getRequestHeaders().contains(HEADER_PASSWORD)){
      String uname = exchange.getRequestHeaders().get(HEADER_USERNAME).getFirst();
      String pwhash = exchange.getRequestHeaders().get(HEADER_PASSWORD).getFirst();
      rsp = _core.handleLogin(uname, pwhash);
    }
    exchange.getResponseSender().send(_gson.toJson(rsp));
  }
...