Ich bin mit einem HTTP-Client wich ist eine erweiterte Version von Angular 4 des Http ClientenAngular Http Fehlerstatus fehlt
export class SecurityClient extends Http {
// ...
}
In diesem Client ich Methoden, die Anrufe gegen einen api versuchen, und ich möchte 401 fangen Status, um ein Aktualisierungstoken zu versuchen.
Ich habe eine Implementierung wie folgt aus:
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
return super.get(url, this._getOptions(options)).catch((initialError: any) => {
console.log('error: ' + JSON.stringify(initialError));
if (initialError && initialError.status === 401) {
return this.authService.doRefreshTokenObservable().flatMap((ok) => {
if (ok) {
return super.get(url, this._getOptions(options));
} else {
return Observable.throw('Authentication error');
}
});
} else {
return Observable.throw(initialError);
}
});
}
ziemlich ähnlich wie Winkel in seiner Seite empfiehlt (https://angular.io/docs/ts/latest/guide/server-communication.html)
Aber aus irgendeinem Grund zeigt die erste console.log so etwas wie:
error: {"_body":{"isTrusted":true},"status":0,"ok":false,"statusText":"","headers":{},"type":3,"url":null}
Und ich kann Statuscode überhaupt nicht erhalten.
Warum passiert es? Es liegt daran, dass ich Httpclient erweitere und etwas falsch gemacht habe? Ich bin diesen seltsamen Status auch immer: 0, Konsole zeigt auch, mit roten Buchstaben:
"No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 401."
(wir die CORS gut konfiguriert haben, wenn Token ich abrufen erfolgreich die Informationen nicht abgelaufen ist)
Hey Hast du das Problem gelöst? Ich habe auch das gleiche Problem. Wie haben Sie das Problem gelöst? – BHUMICA
Hey! Ja, am Ende war es die Antwort, die als gut bezeichnet wurde, es war ein CORS-Problem. Da das CORS ausgelöst wurde, konnte Angular seinen Fehlerstatus nicht lesen. Ich habe auch festgestellt, dass in diesem speziellen Fall Firefox-Konsolen-Ausgabe klarer als Chrome war. Hoffe, es hilft, fühlen Sie sich frei, etwas mehr zu fragen, wenn nötig! –