가입 handleResponse (응답) 모든 것이 잘 작동합니다. 내가 필요한 것은 responseO.do (..)에서 현재의 행동 외에 체크를하는 나의 모든 요청 때문이다.Angular2 내가 HTTP POST 방법을 ovverride은 HTTP에 클라이언트를 만들어 두 번
나는 또한 response.share()를 시도했다; 이 객체를 구독해도 작동하지 않습니다.
내가 원하는 것을 얻기위한 방법이 있습니까? 감사.
가입 handleResponse (응답) 모든 것이 잘 작동합니다. 내가 필요한 것은 responseO.do (..)에서 현재의 행동 외에 체크를하는 나의 모든 요청 때문이다.Angular2 내가 HTTP POST 방법을 ovverride은 HTTP에 클라이언트를 만들어 두 번
나는 또한 response.share()를 시도했다; 이 객체를 구독해도 작동하지 않습니다.
내가 원하는 것을 얻기위한 방법이 있습니까? 감사.
확실히 당신은 do
인터셉터로 Observable을 구독하고 있지 않습니다. do
인터셉터와 관찰을 돌려 :
post(url, data):Observable<Response> {
let headers = new Headers();
this.createAuthorizationHeader(headers);
var response = this.http.post("\\services" + url, data, {
headers: headers
});
return this.handleResponse(response);
}
private handleResponse(responseO : Observable<Response>) {
return responseO.do(response => {
if (response.url.includes("LoginPage.html")) {
window.location.replace("../LoginPage.html");
}
});
}
을 당신의 관찰 스트림 데이터를 조작하려면, 대신 do
를 사용하여, 당신은 아마 map
를 사용해야합니다. 그것은 스트림을 조작하는 '반응적인'방법입니다.
post(url, data):Observable<Response> {
let headers = new Headers();
this.createAuthorizationHeader(headers);
var response = this.http.post("\\services" + url, data, {
headers: headers
});
return response.map(res => handleResponse(res));
}
private handleResponse(responseO : Response) : Response {
if (response.url.includes("LoginPage.html")) {
window.location.replace("../LoginPage.html");
}
return responseO;
}
나는 또한 응용 프로그램을 다시 시작하는 것을 의미하는 새로 고침 페이지를 강제하기 때문에, 각도 2 응용 프로그램에서 window.location.replace
을 사용하여에 추천하고 싶습니다. 각도 라우터를 사용하여 경로를 변경하면 탐색 할 때 앱이로드 될 때까지 기다릴 필요가 없습니다.