我正在使用新的 (4.3( HttpClient 将角度到我的后端服务器发布数据:
this.httpClient.post<View>(`/path`, data).subscribe(
(view: View) => console.log("Success"),
(error: HttpErrorResponse) => {
console.log(error)
this.errorMessage = <any>error.error;
});
);
此调用生成(预期(错误 (409(,但由于某种原因,记录的错误不包含从服务器发送的错误正文。我可以看到状态代码,但缺少应包含响应正文的error.error
字段。任何人都知道可能出了什么问题?
我已经使用 curl 测试了后端调用,可以看到来自服务器的响应正文。
您的错误正文是否以 JSON 或未格式化的文本/其他形式返回? 我遇到了类似的问题,直到我意识到返回的错误结果的正文是一个简单的字符串。 我不得不将调用更改为与此类似的内容(请原谅这里缺乏类型安全性(:
this.http.post('http://address', body, { responseType: 'text' })
.subscribe(data => {
this.result = data['value'];
this.router.navigate(['/route']);
}, (error: HttpErrorResponse) => {
this.error = error.error;
this.router.navigate(['/error']);
});
这是 angular 中的一个已知错误,它在 json 解析期间抛出异常并且不填充错误字段:
https://github.com/angular/angular/pull/18466