Angular2在获取资源时监视302重定向

Dan*_*Dan 9 rxjs angular2-http angular

我需要从我公司持有的另一个域中提取一些资源.我想用GET请求提取安全的HTML内容.

当用户退出应用程序时,所请求的内容将返回302到登录页面.

我试图嗅探302的标题并没有返回到目前为止我所希望的.我的Observable返回的响应是200(登录页面).

这是我的示例应用程序.

export class MenuComponent implements OnInit {

    private _resourceUrl = "http://localhost:3001/resources/menu";

    constructor(private _http: Http){
    }

    menu: string;

    ngOnInit(): void {
        this.getMenu()
            .subscribe(
                response => {
                    console.log(`Response status: ${response.status}`);

                    this.menu = response.text();
                },
                error => console.log(<any>error));
    }

    getMenu(): Observable<Response>{        
        return this._http.get(this._resourceUrl)
            .map((response: Response) => response)
            .catch(this.handleError);
    }

    private handleError(error: Response){
        console.log(error);
        return Observable.throw(error.json().error || 'Server Error');
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否走在正确的轨道上?

Thi*_*ier 19

如果服务器发送带有302状态代码的重定向,并且URL在Location标头内重定向,则重定向将由浏览器自动处理,即执行对此URL的请求.

这就是为什么XHR(和它周围的Angular2包装器,即Http类)不会看到第一个请求的结果而只看到第二个请求的响应.

  • 这根本无法回答问题。OP正在询问如何检测到它。 (2认同)