Angular HttpClient Post请求管道返回类型与声明HttpResponse不符
Angular HttpClient 响应类型不匹配修复方案
问题原因
Angular 的 HttpClient 请求方法默认仅返回解析后的响应体内容,仅在主动配置 observe: 'response' 时才会返回包含状态码、头信息、响应体的完整 HttpResponse 对象。你当前代码只声明了泛型类型但未添加对应配置,因此实际拿到的值是解析后的 Document 响应体,和预期的 HttpResponse 类型不匹配。
修复代码
修改 post 方法的第三个参数,添加配置项即可:
createDocument(owner: string): Observable<HttpResponse<Document>> { // 泛型改为响应体类型 Document,添加 observe: 'response' 配置 return this.http.post<Document>(`${this.API}`, {owner}, { observe: 'response' }).pipe( tap(document => { // 此时 document 已为预期的 HttpResponse<Document> 类型 this.dataStore.unshift(document.body!.authenticationMethod, document.body!.assertionMethod) this.list$.next(this.dataStore) }) ) }
内容的提问来源于stack exchange,提问作者Antonio Santoro
相关产品推荐
相关产品推荐

