http.get 似乎没有执行
http.get doesn't seem to be executing
第一Angular应用运行宁Angular5.
我正在 运行对我的网络服务器进行 http 获取。这是代码:
loadSettings() {
console.log("loadSettings() from:" + this.pizzaSettingsUrl);
this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers})
.pipe(
tap(settings => this.processSettingsDictionary(settings)),
catchError(this.handleError("pizzaSettings", {}))
);
}
processSettingsDictionary(settings) {
console.log("processSettingsDictionary()");
console.log(JSON.stringify(settings));
this.drinks = settings.drinkType;
this.drinkSizes = settings.drinkSize;
this.pizzaSizes = settings.pizzaSize;
this.breads = settings.sandwichBreadType;
this.sides = settings.sideType;
this.toppings = settings.topping;
}
日志 "loadSettings() from:" 是 运行 正确的 url。当我将 URl 从控制台复制并粘贴到 curl 和 运行 时,它会访问我的网络服务器。
但是,this.http.get 没有访问我的服务器,我也没有在日志中收到任何错误。我的网络选项卡上也没有任何内容表明有任何问题。
你能看出我做错了什么吗?
仅当您订阅 HttpClient 时 运行。
this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers}).subscribe();
Observables 在被订阅之前不会发射。通常,您将订阅任何代码调用 loadSettings
。例如:
// Service code
loadSettings() {
return this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers})
.pipe(
catchError(this.handleError("pizzaSettings", {}))
);
}
// Component code
this.pizzaService.loadSettings().subscribe(({ drink, pizzaSlices, etc }) => {
this.drink = drink;
this.pizzaSlices = pizzaSlices;
this.etc = etc;
});
第一Angular应用运行宁Angular5.
我正在 运行对我的网络服务器进行 http 获取。这是代码:
loadSettings() {
console.log("loadSettings() from:" + this.pizzaSettingsUrl);
this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers})
.pipe(
tap(settings => this.processSettingsDictionary(settings)),
catchError(this.handleError("pizzaSettings", {}))
);
}
processSettingsDictionary(settings) {
console.log("processSettingsDictionary()");
console.log(JSON.stringify(settings));
this.drinks = settings.drinkType;
this.drinkSizes = settings.drinkSize;
this.pizzaSizes = settings.pizzaSize;
this.breads = settings.sandwichBreadType;
this.sides = settings.sideType;
this.toppings = settings.topping;
}
日志 "loadSettings() from:" 是 运行 正确的 url。当我将 URl 从控制台复制并粘贴到 curl 和 运行 时,它会访问我的网络服务器。
但是,this.http.get 没有访问我的服务器,我也没有在日志中收到任何错误。我的网络选项卡上也没有任何内容表明有任何问题。
你能看出我做错了什么吗?
仅当您订阅 HttpClient 时 运行。
this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers}).subscribe();
Observables 在被订阅之前不会发射。通常,您将订阅任何代码调用 loadSettings
。例如:
// Service code
loadSettings() {
return this.http.get<string[]>(this.pizzaSettingsUrl, {headers: this.headers})
.pipe(
catchError(this.handleError("pizzaSettings", {}))
);
}
// Component code
this.pizzaService.loadSettings().subscribe(({ drink, pizzaSlices, etc }) => {
this.drink = drink;
this.pizzaSlices = pizzaSlices;
this.etc = etc;
});