Http (REST) ​​Ошибка с Angular5 и Java Vert.x - PullRequest
0 голосов
/ 19 сентября 2018

У меня внешний интерфейс Angular5, запущенный через "ng serve" на локальном хосте: 4200.

Мой серверный модуль - это Java-приложение, использующее vert.x и работающее на локальном хосте: 8080.

ЧтоЯ пытаюсь сделать так, чтобы передний конец говорил с задним концом, используя REST.Для этого я отправляю простой запрос GET из внешнего интерфейса, как это:

@Injectable()
export class HttpService {
  
  constructor(private http:HttpClient) {}
  
  getTest() {
	  this.http.get('http://localhost:8080/api/whiskies').subscribe(data => console.log(data));
  }
	
}

Мой внутренний сервер выглядит следующим образом:

@Override
public void start(Future<Void> fut) {
    Router router = Router.router(vertx);
    router.route("/").handler(routingContext -> {
        HttpServerResponse response = routingContext.response();
        response.putHeader("content-type", "text/html").end("<h1>Hello from my first Vert.x 3 application</h1>");
    });

    router.get("/api/whiskies").handler(this::getAll);

    vertx.createHttpServer().requestHandler(router::accept).listen(
            config().getInteger("http.port", 8080), result -> {
                if (result.succeeded()) {
                    fut.complete();
                } else {
                    fut.fail(result.cause());
                }
            });
}

private void getAll(RoutingContext routingContext) {
    routingContext.response().putHeader("content-type", "application/json; charset=utf-8")
            .end(Json.encodePrettily(products.values()));
}

Теперь я вижу в консоли браузера, что мой запрос GET успешно отправлен.В консоли браузера я также вижу, что ответом на запрос GET является желаемый JSON.Внутренний сервер также регистрирует успешную обработку запроса GET.

Однако в консоли браузера появляется сообщение об ошибке

Http-сбой для (неизвестный URL): 0Неизвестная ошибка

У кого-нибудь есть идеи, как это исправить?

Google уже указал мне в разных направлениях:

  1. Мой серверный сервер явноне предоставляет SSL-сертификат, но node.js может запросить его.
  2. Возможно, это проблема с CORS

Но я не знаю, как это исправить тоже ...

1 Ответ

0 голосов
/ 19 сентября 2018

В вашем ответе вы указали это, чтобы предотвратить проблемы с CORS:

reponse.putHeader("Access-Control-Allow-Origin", "*");
...