我有一个自定义的http服务,它会覆盖默认的angular 2 http服务。此服务设置自定义默认选项并在请求启动时设置加载程序,并在请求完成时隐藏加载程序。
如果从服务器收到Unauthorized错误(401,403),我还想添加将用户重定向到登录页面的功能。例如下面是我的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();
});
}
但是当在浏览器中测试它,即在未经授权的请求的情况下发出返回401的受保护页面的请求时,它会重定向到登录页面但是控制台显示在下面错误:
GET http://localhost:49547/api/protected/ 401 (Unauthorized)
EXCEPTION: Observable_1.Observable.empty is not a function
ORIGINAL STACKTRACE:
TypeError: Observable_1.Observable.empty is not a function
有人可以指导吗?
答案 0 :(得分:2)
您需要导入empty
功能:
import 'rxjs/add/observable/empty'