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 未知错误
有没有人知道如何解决这个问题?
谷歌搜索已经为我指明了各个方向:
- 我的后端服务器显然没有提供SSL证书但是
node.js 可能会要求一个。
- 可能是 CORS 的问题
但我也不知道如何解决这些问题...
在您的回复中,为了防止出现 CORS 问题,您这样说:
reponse.putHeader("Access-Control-Allow-Origin", "*");
我有一个 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 未知错误
有没有人知道如何解决这个问题?
谷歌搜索已经为我指明了各个方向:
- 我的后端服务器显然没有提供SSL证书但是 node.js 可能会要求一个。
- 可能是 CORS 的问题
但我也不知道如何解决这些问题...
在您的回复中,为了防止出现 CORS 问题,您这样说:
reponse.putHeader("Access-Control-Allow-Origin", "*");