我正在使用新的(4.3)HttpClient角度来POST数据到我的后端服务器:
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测试了后端调用,并且可以从服务器看到响应主体。
答案 0 :(得分:0)
您的错误正文是以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']);
});
答案 1 :(得分:0)
这是angular中的已知错误,它在json解析期间抛出异常而不填充错误字段: