Мне не удается получить доступ к ответу на мой запрос на вход в систему после обновления с Angular Http
до HttpClient
.Это рабочий код для Http:
login(username: string, password: string): Observable<boolean> {
let headers: Headers = new Headers();
headers.append("Authorization", "Basic " + btoa(username + ":" + password));
headers.append("Content-Type", "application/x-www-form-urlencoded");
return this.http.post('http://localhost:8080/oauth/login', '', {headers: headers, withCredentials: true})
.map((response: Response) => {
if (response.status === 200) {
localStorage.setItem('setCookie', resHeaders.get("Set-Header"));
window.location.href = "http://localhost:8080/oauth/authorize?client_id=api&response_type=token&redirect_uri=http://" + document.location.host + "/%23/token//%3F";
return true;
}
else {
return false;
}
});
}
Это код, который я использую для HttpClient:
login(username: string, password: string): Observable<boolean> {
let httpHeaders : HttpHeaders = new HttpHeaders()
.set("Authorization", "Basic " + btoa(username + ":" + password))
.set("Content-Type", "application/x-www-form-urlencoded");
return this.http.post('http://localhost:8080/oauth/login', '', {headers: httpHeaders, withCredentials: true})
.pipe(
map(res => { // res: undefined
if (res) {
console.log("res: " + res);
}
else {
console.log("Didn't get any response");
}
})
)
}
Выход из кода HttpClient
равен Didn't get any response
. HttpClient Docs использует pipe, как в моем коде выше, но res
также не определено, если я просто использую .map
, как я делаю с Http
.Я изучил фактические запросы и ответы в Chrome, и они идентичны рабочему коду, использующему Http
.Итак, я знаю, что проблема в том, что я делаю что-то не так, когда пытаюсь получить доступ к объекту ответа.