Angular5 和 java vert.x 的 Http (REST) 失败

Http (REST) Failure with Angular5 and java vert.x

我有一个 Angular5 前端 运行 通过 "ng serve" 在 localhost:4200。

我的后端是一个 java 应用程序,在 localhost:8080 上使用 vert.x 和 运行。

我想做的是让前端使用 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 请求的成功处理。

但是,在浏览器控制台中,我得到一个错误

(未知 URL)的 Http 失败响应:0 未知错误

有没有人知道如何解决这个问题?

谷歌搜索已经为我指明了各个方向:

  1. 我的后端服务器显然没有提供SSL证书但是 node.js 可能会要求一个。
  2. 可能是 CORS 的问题

但我也不知道如何解决这些问题...

在您的回复中,为了防止出现 CORS 问题,您这样说:

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