서비스 요청이있을 때 Angular 4 코드에서 오류를 처리하려고합니다. 내 요구 사항은 403, 200 등의 오류 코드를 기반으로 일부 작업을 수행하는 것입니다.Http 응답 error.status가 0으로 수신되었지만 실제 상태가 아닙니다.
서비스 요청의 결과를 얻으려면 Observable에 가입하고 있습니다. 그러나 오류 코드를 읽을 때마다 오류 응답에 '0'만 표시됩니다. 이 호출 후
getStatus():Observable<any>{
let options = new RequestOptions({ headers: this.Headers });
return this.http.get(this.Url,options)
.map((res) => res.json())
.catch((err:Response) => {return Observable.throw(err.json())})
}
, 내가 오류를 잡으려고 난 단지 상태 코드로 '0'을 얻을 아닌 실제 하나의 서비스에서 반환. 하지만 브라우저 콘솔에서 실제 상태를 볼 수 있습니다. 나는 상태 코드를 읽으려고 할 때하는에 호출이 실패 때문에
this.service.getStatus()
.subscribe((status => {
this.status = status.Status;
this.toggleflag = (this.status === 'Yes' ? true : false);
}
))
.catch(error=> this.redirectToLoginPage(error));
지금 리디렉션 기능에, 난 항상 0이 아닌 실제 상태를 가져옵니다.
private redirectToLoginPage(error) {
if(error.message == 403){
localStorage.clear();
this.router.navigateByUrl('https://' + window.location.hostname);
// the code continues
저는 오랫동안이 문제로 어려움을 겪었습니다. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
이
은 거짓의 성공 0이 경우Response {_body: ProgressEvent, status: 0, ok: false, statusText: "", headers: Headers, …}
headers
:
Headers {_headers: Map(0), _normalizedNames: Map(0)}
ok
:
false
status
:
0
statusText
:
""
type
:
3
url
:
null
"브라우저 콘솔에서 실제 상태를 봅니다."- 또는 더 나은 점은 무엇을 의미하는지 나타냅니다. – Amit
일반 헤더 아래에서 네트워크 탭으로 이동하면 상태 코드 : 403 또는 무엇인가 나타납니다. – DP3