У меня внешний интерфейс 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 уже указал мне в разных направлениях:
- Мой серверный сервер явноне предоставляет SSL-сертификат, но node.js может запросить его.
- Возможно, это проблема с CORS
Но я не знаю, как это исправить тоже ...