当服务器响应 400 http 错误时订阅不触发错误
Subscribe not firing error when the server response with 400 http error
我完全不知道为什么没有触发错误
这是我调用服务器的代码
this.userService.createUser(values).subscribe((response)=> {
this.alertService.showConfirm("Usuario creado");
this.dialogRef.close(response);
}),error => this.alertService.showError({message: error.error.message})
此错误是未触发的错误
创建用户有以下代码
createUser(usuario): Observable<boolean>{
const accessToken = this.webStorageService.getAccessToken();
return this.http.post<boolean>(`${this.usersUrl}?access_token=${accessToken}`, usuario,{ headers: this.headers });
其中 this.http 是来自 AngularCommon 的 HttpClient,headers 是
this.headers = new HttpHeaders().set('Content-Type', 'application/json');
我有一个响应拦截器可以捕获每一个错误响应,拦截器的重要代码如下
return throwError(err);
因为我的拦截器只在 http 错误为 401 时执行某些操作,但我发送的是 400 错误
我在拦截器上有一个错误的控制台日志,它很好地捕获了错误,任何线索为什么它没有到达订阅?
我试过删除整个拦截器但它也不起作用,所以我假设不是拦截器问题
在行 }),error => this.alertService.showError({message: error.error.message})
中,第一个 )
是不需要的,你不觉得吗?尝试将此行更改为 },error => this.alertService.showError({message: error.error.message}));
。请注意此行末尾的额外 )
。
感谢您接受这个作为答案,我很感激。
我完全不知道为什么没有触发错误
这是我调用服务器的代码
this.userService.createUser(values).subscribe((response)=> {
this.alertService.showConfirm("Usuario creado");
this.dialogRef.close(response);
}),error => this.alertService.showError({message: error.error.message})
此错误是未触发的错误
创建用户有以下代码
createUser(usuario): Observable<boolean>{
const accessToken = this.webStorageService.getAccessToken();
return this.http.post<boolean>(`${this.usersUrl}?access_token=${accessToken}`, usuario,{ headers: this.headers });
其中 this.http 是来自 AngularCommon 的 HttpClient,headers 是
this.headers = new HttpHeaders().set('Content-Type', 'application/json');
我有一个响应拦截器可以捕获每一个错误响应,拦截器的重要代码如下
return throwError(err);
因为我的拦截器只在 http 错误为 401 时执行某些操作,但我发送的是 400 错误 我在拦截器上有一个错误的控制台日志,它很好地捕获了错误,任何线索为什么它没有到达订阅?
我试过删除整个拦截器但它也不起作用,所以我假设不是拦截器问题
在行 }),error => this.alertService.showError({message: error.error.message})
中,第一个 )
是不需要的,你不觉得吗?尝试将此行更改为 },error => this.alertService.showError({message: error.error.message}));
。请注意此行末尾的额外 )
。
感谢您接受这个作为答案,我很感激。