Alle meine Backend-API-Anfragen geben neue Token-Informationen in den Headern zurück, selbst wenn sie Ausnahmen auslösen. In der nächsten Anfrage muss ich diese neuen Tokeninformationen senden.Angular 2 - Header aus HTTP-Anfragen abrufen
Also ich versuche, dass eine eindeutige und standardisierte Möglichkeit, um herauszufinden, zu tun, also ich versuche:
let requestOptions = new RequestOptions(Object.assign({
method: method,
url: environment.apiHost + url,
body: body,
headers: authenticatedRequest ? this.requestService.getAuthHeaders() : this.requestService.getJsonHeaders(),
withCredentials: authenticatedRequest
}));
this.http.request(new Request(requestOptions))
.map((res:Response) => { this.storageService.setAuthInfo(res.headers); res.json() })
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
Das Problem, das ich mit Blick auf bin, ist, dass, wenn ich subscribe
dieses Verfahren res
Variable gibt undefined
zurück.
Was schlagen Sie mir vor?
sehr vielen Dank! –
Es löste das damit verbundene Problem, aber ich stehe vor einem neuen: Wenn ein Fehler auftritt, wird er nicht von map() übergeben, so dass er keine neuen Tokens registriert. Die Lösung wäre ein neues Token ('this.storageService.setAuthInfo (res.headers);') auf catch() auch gesetzt, es sei denn, es gibt eine Anfrage-Methode, die bei Erfolg und Fehlerrückgabe aufgerufen wird. Irgendeine Idee? –
@PaspRuby Ich würde sagen, es lohnt sich, neue Frage zu öffnen, andere Leute können auch mit Gedanken springen .. –