Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2 http捕获可观察问题_Angular_Angular2 Services_Angular2 Http - Fatal编程技术网

Angular 角度2 http捕获可观察问题

Angular 角度2 http捕获可观察问题,angular,angular2-services,angular2-http,Angular,Angular2 Services,Angular2 Http,我有一个自定义http服务,它覆盖默认的angular 2 http服务。此服务设置自定义默认选项,并在请求启动时设置加载器,在请求完成时隐藏加载器 我还想添加一个功能,在服务器收到未经授权的错误(401403)时,将用户重定向到登录页面。下面的例子是我的http方法 get(url: string, options?: RequestOptionsArgs): Observable<any> { this.setLoadingStatus(); op

我有一个自定义http服务,它覆盖默认的angular 2 http服务。此服务设置自定义默认选项,并在请求启动时设置加载器,在请求完成时隐藏加载器

我还想添加一个功能,在服务器收到未经授权的错误(401403)时,将用户重定向到登录页面。下面的例子是我的http方法

get(url: string, options?: RequestOptionsArgs): Observable<any> {
        this.setLoadingStatus();
        options = this.prepareOptions(options);
        let that = this;
        return super.get(url, options)
            .map(res => {
                this.clearLoadingStatus();
                return res.json();
            })
            .catch(function (err) {
                //redirects user to login and display alert
                that._gs.alertUnauthorized();
                return Observable.empty();
            });
    }

有人可以指导吗?

您需要导入
空功能:

import 'rxjs/add/observable/empty'

您需要导入
empty
函数:

import 'rxjs/add/observable/empty'

尝试
super.get().map((res)=>{},(err)=>{})语法?尝试
super.get().map((res)=>{},(err)=>{})语法?谢谢,这很有帮助。还请注意,在这种情况下使用Observable.empty()是否合适,或者还有其他更好的选择吗?我仍然看到控制台中打印的下面的错误行“zone.js:1274 GET 401(Unauthorized)”,可以吗?或者这是一个需要处理的异常?我认为这只是一个调试问题。返回Observable.empty()会抑制错误,所以如果这是您想要的,那么您就是golden。当服务器返回401 unauthorized时,我想重定向到登录页面。谢谢,这很有帮助。还请注意,在这种情况下使用Observable.empty()是否合适,或者还有其他更好的选择吗?我仍然看到控制台中打印的下面的错误行“zone.js:1274 GET 401(Unauthorized)”,可以吗?或者这是一个需要处理的异常?我认为这只是一个调试问题。返回Observable.empty()会抑制错误,所以如果这是您想要的,那么您就是golden。当服务器返回401 unauthorized时,我想重定向到登录页面。