Angular5 和 java vert.x 的 http (REST) 故障



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

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

我正在尝试做的是让前端使用 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 未知错误

有没有人有任何想法,如何解决这个问题?

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

  1. 我的后端服务器显然不提供SSL证书,但是 节点.js可能会请求一个。
  2. 这可能是 CORS 的问题

但我也不知道如何解决这些事情...

在你的回应中,你把这个,以防止CORS问题:

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

最新更新