응답 POST 요청의 상태 코드를 얻으려면 어떻게해야합니까? 내 서비스 메서드의 반환 : 내 구성 요소에서각도 2 4 HttpClient. POST 요청 - 상태 코드를 얻는 방법
return this.httpClient.post(url, body, {observe: 'response'})
.catch(HandleError.handleErrorClient);
나는이 방법을 호출하고 구독 :
.subscribe(
res => {
console.log(res);
console.log(JSON.stringify(res));
this.responseStatus = res.status;
console.log(this.responseStatus);
},
err => {
this.responseStatus = err.status;
});
을하지만 브라우저 콘솔에서 아무것도 없다 -하지만 요청은 this.responseStatus = err.status
반환 올바른 상태를 오류가 포함 된 경우 코드가 있지만 res.status
또는 res
에는 상태 코드 만 포함되며 응답 본문 만 포함됩니다.
편집 :
구성 요소 :
responseStatus: number;
loginUser() {
this.loginData = this.loginForm.getRawValue();
this.userLoginService.loginUser(this.loginData)
.subscribe(
res => {
console.log('bla bla');
this.responseStatus = res.status;
},
err => {
console.log(err.status); //401
console.log(err.error.error); //undefined
console.log(JSON.parse(err.error).error); //unauthorized
this.responseStatus = err.status;
});
}
서비스 :
import {Http} from "@angular/http";
import {HttpClient} from '@angular/common/http';
...
constructor(private http: Http, private httpClient: HttpClient) {
}
loginUser(loginData: LoginForm) {
return this.httpClient.post(this.loginURL, loginData, {observe: 'response'})
.catch(HandleError.handleError);
}
핸들 error.ts
export class HandleError {
static handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(error);
}
}
POST :/API/로그인 로그인이 올바르게되었지만 더 이상은 아닙니다 ... 브라우저 콘솔에서 예상했습니다 : console.log('bla bla');
. Http
으로는 문제가 없습니다.
console.log resp.headers를 사용해 보셨나요? –
가끔 로그 수준 출력이 "모든 수준"으로 설정되어 있습니까? 그렇지 않다면, 당신은 (당신이하는) 에러를 볼 수도 있습니다. – Tim
@VivekDoshi,'console.log (res.headers)'는 도움이되지 않습니다. @ 킴, 무슨 뜻인지 모르겠다. Firefox를 사용하고 브라우저 콘솔에 모든 옵션 (네트워크, CSS, 보안, 서버)이 설정되어 있습니다. 그러나'hubp (res => console.log ('blah blah blah'))'도 출력하지 않습니다. 그러나 정상적인'Http' (HttpClient가 아닌)를 사용하면 모든 것이 작동합니다. . – user7337867