Всякий раз, когда мой узел-сервер возвращает ошибку 404, я хочу, чтобы это было перехвачено моим угловым приложением и пользователем, направленным на определенный маршрут.Angular - 404 HTTP-перехватчик
Я пытаюсь создать простой перехватчик, чтобы сделать это, однако он, кажется, ничего не возвращает.
Любые указатели о том, почему этот код не будет ничего, когда 404 приходит в печати (я подтвердил это, глядя на заголовок страницы):
И код:
.config(function($httpProvider) {
//Ignore this authInceptor is for saving my JWT's
$httpProvider.interceptors.push('authInterceptor');
//This is the one I'm having issue with
$httpProvider.interceptors.push(function myErrorInterceptor($window, $location) {
return {
requestError: function(res){
if (res.status === 404) {
console.log('You're In - Now do some more stuff')
}
return res;
}
}
})
})
UPDATE: Таким образом, в дополнение к этому, я понял, на моей стороне узла - у меня есть
//This section is to handle Angular HTML5Mode Urls
//Have to rewrite all your links to entry point of your application (e.g. index.html)
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/site/index.html')
});
Таким образом, еще одна проблема заключается в том, что app.get('/*'
не будет использоваться, чтобы различать то, что разрешено в соответствии с Угловыми маршрутами, - так как я могу понять это? (Не хочу что-то массива, где я дублирую код)
Это [Fiddle] (http://jsfiddle.net/LvhRC/103/), который может быть полезен. Также обратите внимание на отклоненные обещания возврата. –
Если вы обработали 404/маршрутизацию всех запросов обратно в угловую точку входа (для режима HTML5) на стороне сервера/узла, в каком сценарии она выбрасывает 404? – Developer