私は現在認証が必要なサービスにリクエストを送信しています。私の現在の状態はそうではないので、私は401応答を得ています。私は、クライアント側で、私は私のコードでこれを扱うことができるかどうかを確認しようと活字体で書かれています:応答で401の代わりにステータスゼロを取得
this.http.post(url, body, options).catch(e => {
if (e.status === 401) {
//Handle 401
}
return Observable.throw(e);
});
しかし、問題はe.status
がネットワークパネルから、私はそれを見ることができるにもかかわらず、ゼロであるということです応答のステータスは実際には401です。これはAngularの問題ですか、何か問題がありましたか?
これはJSON.strigify(e)
の戻り値である:
{
"_body": { "isTrusted": true },
"status": 0,
"ok": false,
"statusText": "",
"headers": {},
"type": 3,
"url": null
}
ところで、私は角4.0.0(コアおよびHTTP)を使用しています。
これは私が原因上記送られたポスト要求にコンソールで取得していますエラーです:
(2) POST http://192.168.2.10:8080/test 401()
XMLHttpRequest cannot load http://192.168.2.10:8080/test. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.2.10:4200' is therefore not allowed access. The response had HTTP status code 401.
もう一つの謎が一つだけて送信があるとしながら、コンソールに報告された2つのポストの要求エラーがあるということですネットワークパネルによると。
エラーをキャッチしてから転覆する理由は何ですか?なぜあなたはonErrorを購読していませんか?いくつかの副作用の値を確認しない限り、シーケンスを再起動するために使用する必要があります。その場合は.do演算子をうまく使用してください。 – LookForAngular
CORSエラーが発生していますか? –
@LookForAngularこのコードは、401を検出できるかどうかを確認することです。いったんやったら、別のものを返します。 – Mehran