Как получить доступ к угловому атрибуту статуса httpClient в ответ
У меня есть следующий код:
this.http.post(url, payload)
.subscribe(
(req:any)=>{
if(req.status != 200){
console.log('non 200 status');
this.http
относится к сервису, который я ввел:
post(url, payload){
return this.http.post(url, payload, { observe: 'response' });
}
как вы видите, я наблюдаю весь ответ.
когда я консоль регистрирую запрос, я получаю статус объекта httpresponseerror и все, но по какой-то причине мой код не соблюдает его.
core.js:14597 ERROR
HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "Bad Request", url: "http://127.0.0.1:8080/api/user/user", ok: false, …}
error: {failcontext: "That email is already in use"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message: "Http failure response for http://127.0.0.1:8080/api/user/user: 400 Bad Request"
name: "HttpErrorResponse"
ok: false
status: 400
statusText: "Bad Request"
url: "http://127.0.0.1:8080/api/user/user"
__proto__: HttpResponseBase
Что я делаю неправильно?
2 ответа
Решение
Я получил это, включив прослушиватель ошибок:
this.http.post(url, payload)
.subscribe(
(req:any)=>{
console.log(req);
},
(err: any)=>{
if(err.status != 200){
console.log('non 200 status');
}
}
);
В ваш http запрос добавьте observer
return this.http.post(
this.configUrl, { observe: 'response' });
}
так что вы можете получить доступ ко всему ответу объекта, а не только к данным.