Угловой 2 http поймать наблюдаемую проблему
У меня есть пользовательский http-сервис, который переопределяет стандартный http-сервис angular 2. Этот сервис устанавливает пользовательские параметры по умолчанию и устанавливает загрузчик при запуске запроса и скрывает загрузчик при завершении запроса.
Я также хочу добавить, функциональность для перенаправления пользователя на страницу входа в случае, если с сервера получена Несанкционированная ошибка (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
Может кто-нибудь, пожалуйста, руководство?
1 ответ
Вам необходимо импортировать empty
функция:
import 'rxjs/add/observable/empty'