当HTTP请求失败时,我无法访问JSON响应有效载荷。
this.myService.makeSomeHttpRequest(values).subscribe((res) => {
console.log(res) // works as expected
}, (err) => {
console.log(typeof err) // string
})
err是一个字符串,看起来像这样:
500 - Internal Server Error Details: Http failure response for http://some/url: 500 Internal Server Error
这是请求方法:
private makeSomeHttpRequest(values: any): any {
return this.http.put('http://some/url', values)
}
HTTP响应具有一个JSON响应主体,其中包含我需要的有价值的数据,但我无法访问它。
如何访问它?我已经看到了与此类似的问题,但仅针对Angular 2而不是Angular6。Angular 2的答案似乎无关紧要。我只能假设在这些主要版本之间发生了某些变化。
答案 0 :(得分:0)
如果您使用@angular/http
来调用API方法,那么请将其更改为@angular/common/http
,如果您正在使用@angular/common/http
方法,请检查您的RxJS导入,它应该是这样的:
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { catchError } from 'rxjs/operators';
,您必须调用您的API,如下所示:
return this.http.get<T>(this.endpointUrl, this.getRequestHeaders()).pipe<T>(
catchError(error => {
return error;
}));