У меня проблемы с отправкой HTTP-запроса в моем приложении angular. из компонента правой боковой панели всякий раз, когда пользователь нажимает кнопку, вызываемую этой функцией:
//right-sidenav.component.html
info() {
this.infoService.getInfo().subscribe(layers => {
if (layers) {
let handler: any = window.open(
"/info-window",
"Info",
"width=1200,height=500"
);
handler["tableData"] = [];
handler["signals"]= this.signals
handler["tableData"]["tableNumeric"] = layers[0];
handler["tableData"]["tableString"] = layers[1];
handler["tableData"]["tableDatetime"] = layers[2];
}
});
из ответа, я получаю 3 типа информации о таблице, которая будет отображаться во всплывающем окне. Я также посылаю информацию о сигналах во всплывающее окно. и всякий раз, когда пользователь нажимает signals
, он отправляет HTTP-запрос. Но здесь у меня проблема. Я не могу сделать запрос Http. Я не вижу ни одного запроса через inspect --> Network
.
Я не уверен, могу ли я сделать HTTP-запрос из всплывающего окна или нет.
Вот мое всплывающее окно:
//info-window
constructor(public infoService: InfoService,
protected apiService: ApiService,) {}
ngOnInit() {
const int = setInterval(() => {
if (!window["tableData"]) {
return;
}
this.tableNumeric = new Array(window["tableData"]["tableNumeric"]);
this.tableString = new Array(window["tableData"]["tableString"]);
this.tableDatetime = new Array(window["tableData"]["tableDatetime"]);
this.signals = window["signals"];
this.table.push(this.tableNumeric, this.tableString, this.tableDatetime);
clearInterval(int);
}, 500);
}
displayPlotting() {
if(isNull(this.selectedSignal)) {
return
}
let response = {};
response["table_info"] = {
data: {}
};
for (let signal of this.selectedSignal) {
response["table_info"]["data"][signal.key] = signal.name;
}
response["results"] = {
table: ["table_info"]
};
console.log("InfoService -> response", response);
this.apiService.post("info/plot", response).pipe(
map(result => {
console.log("InfoService -> result", result);
return result;
})
);
//let plot = this.infoService.getPlotting(this.selectedSignal)
//console.log("InfoWindowComponent -> displayPlotting -> plot", plot)
}
}
Вот код apiService
:
//apiservice.service.ts
post(route: string, data: any, withCredentials?: boolean, loading: boolean = true): Observable<any> {
if (loading) {
this.$loading.next(true);
}
const url = this.localStorageService.getDjangoHost() + route;
this.saveRequestParam('post', url, data, withCredentials);
return this.postTemplate(url, data, withCredentials)
.pipe(
catchError(error => this.handleError('post', error, url)),
finalize(() => {
if (loading) {
this.$loading.next(false);
}
})
)
.pipe(
map((result: any) => {
this.handleLeftSideMessage(result);
return result;
})
);
}
Может кто-нибудь помочь мне решить эту проблему? Как я могу сделать запрос Http post из всплывающего окна ??