От углового Docs на перехватчики для метода request
:
request: interceptors get called with a http config object. The function is free to modify the config object or create a new one. The function needs to return the config object directly, or a promise containing the config or a new config object.
Остальная часть документации может быть найдено here. Из этого вы можете видеть, что метод также может вернуть обещание (что на самом деле довольно удивительно), поэтому вы всегда можете отказаться от него.
попробовать что-то вроде этого:
prism.service('APIInterceptor', function($q, $rootScope) {
this.request = function(config) {
if(/*config is not valid*/) {
return $q.reject({message: 'ERROR, ERROR... INTRUDER ALERT!', status: 401, config: config});
} else {
return config;
}
};
});
И посмотреть, как она может быть обработана (я понятия не имею, что ваше приложение будет делать). Дайте мне знать, если это сработает для вас!
EDIT: Мой ответ принят, но является неполным, и он будет преследовать меня навсегда, если я не завершу его. Поэтому, написав собственный тестовый код, я понял, что вы можете сделать 1 из 2 вещей в этой ситуации. Во-первых, чтобы справиться с несанкционированным запрос в перехватчика:
...
this.request = function(config) {
if(/* config is not authorized */) {
// Do something here like redirect/issue another request... whatever
return $q.reject({/*whatever the hell you want*/});
} else ...
};
...
Это, очевидно, работает лучше всего, если вы хотите, чтобы обрабатывать все несанкционированные запросы и то же. Однако, если вы этого не сделаете, вторым вариантом является отсрочка на услугу, выдавшую запрос. Например, если вы используете $http
вы можете сделать это:
$http.get('/words/words/words/').then(function(){
// This is where you handle a successful request.
}, function(error) {
// Handle your error here. Please take note that this error message is
// whatever you sent back in the `reject` previously
});
Хотелось бы надеяться, что очищает несколько вещей вверх.
'return null; ' вероятно, сделает это. – CollinD
Да, он не будет обрабатывать данные, но в консоли он говорит: TypeError: Невозможно прочитать заголовки свойств null – Mark
Попробуйте распечатать объект конфигурации, посмотрите, какие методы и поля доступны в нем. Если вы не можете полностью отменить запрос XHR от инициирования, возможно, вы можете просто указать его на недопустимый URL. Это все равно бросит 404, но это не должно ничего сломать. – CollinD