I'amバックエンドにPOSTリクエストを送信するとステータスコードを読み取るしようと、私は次のような結果に実行します。ここではstatus-code:0
HTTP Postからステータスコードを読み取る方法は?
は私の機能である:
サービス:
signIn(uname:string, pass:string): Observable<any> {
let headers = new Headers({
'Content-Type': 'application/json',
'Uname':uname,
'Password':pass
});
let opt = new RequestOptions({ headers: headers, withCredentials: true });
let data = {};
return this.http.post(url, data, opt)
.map(res => {
return res.json();
})
.catch(this.handleError);
}
private handleError(error:Response | any){
let details = error.json();
console.log('STATUS CODE: ' + error.status);
return Observable.throw(details || error);
}
コンポーネント:
login(uname: string, pass: string) {
this.user.signIn(uname, pass).subscribe(
res => {},
err => {
console.log('ERR: ' + JSON.stringify(err));
// returns {"isTrusted":true}
}
);
}
私はステータスコードを読むことができるようにしたい。 404,401,403など 私の場合、Chromeコンソールでステータス404が表示されるため、ステータスコードエラーによってerrorMsgを表示したいと考えています。
そして、私は、コンソールに切り替えるとき:Network
私はResponse
タブで取得:
{"code":404,"reason":"Not Found","message":"Resource 'user/auth' not found"}
そしてI出力handleError()
でerror
は、私が出た場合:
handleErrorObservable: {"_body":{"isTrusted":true},"status":0,"ok":false,"statusText":"", "headers":{},"type":3,"url":null}
どのようにすることができます私は投稿コードに基づいてこれに到達するか、または私が実行している間違いはどこですか?
'hanldeError'メソッドは期待どおりに実行されていますか?もしそうなら、単に 'console.log(error)'とそれを調べてレスポンスコードを抽出する方法を理解してください。あなたが必要とするものは 'error.code'かもしれないようです。 – BeetleJuice
確か...私はすでにこれを試しました。 'レスポンスを伴うレスポンス:URL:nullの場合0 ' したがって、' error.code'はこの場合 'undefined'になります。 –