【发布时间】:2023-03-18 19:07:02
【问题描述】:
我有一个使用 Rest API 的角度服务,但是当我检查网络和后端时,我看到 API 每次调用两次:
这是我的服务代码:
getAllUsers():Observable<any>{
return this.http.get(this.mainConfigService.getUsersUrl()).pipe(
map(this.extractData));
}
private extractData(res: Response) {
let body = res;
return body || { };
}
在我的组件中,我调用了这个服务:
getAllUser(){
let users : User[] = [];
this.userService.getAllUsers().subscribe(data=>{
this.usersList=data;
data.forEach( (element) => {
users.push(
{
fullName: element.fullName,
firstName:element.firstName,
lastName:element.lastName,
mail:element.mail,
idNumber:element.idNumber,
accountExpiresDateTime:element.accountExpiresDateTime,
role:element.role
}
);
});
this.dataSource = new MatTableDataSource(users);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
},err=>{
this.handleError(err)
})
}
在控制台中,我看到 API 调用了两次,即使我调用 getAllUser() 的唯一位置是在 Init 方法中
我还是找不到这个问题的原因
【问题讨论】:
-
你能提供一个网络选项卡的屏幕,也许是在请求之前配置客户端和服务器的OPTIONS方法?
-
是的,这是一种选择方法,谢谢!
-
第一个请求必须是 OPTION。第二个是真正的 HTTP 调用。请访问developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
标签: javascript angular rxjs httpclient