Im, использующий http-сервис angularjs в моем приложении. и я заметил это на веб-сайте
Если вызов AJAX завершается успешно (сервер отправляет обратно HTTP-код между 200 и 209), функция, переданная функции success(), казнены. Если вызов AJAX завершается неудачно (все остальные коды, кроме перенаправления), функция, переданная методу error(), выполняется.
очевидно, что код статуса перенаправления не является частью успеха, а не вызывает обратные вызовы. Итак, как мы будем обрабатывать перенаправления?
Это то, что делает мой script, получает данные с сервера с помощью http get. Если сеанс истекает, сервер возвращает код состояния 302. Я должен поймать этот код состояния, а затем перенаправить страницу для входа.
app.controller('GraphController', function($scope, $http, localStorageService, $interval) {
$scope.GraphData = [{"key":"in","values":[]},{"key":"out","values":[]}];
$scope.pollStats = function() {
$http.get('/statistics/getStat').success(function(lastData, status, headers) {
if (status==302) {
//this doesn't work
//window.location=headers('Location');
//this doesn't work either
window.location.replace(headers('Location'));
}else if (status==200) {
...processData
}
});
};
});
Очевидно, что мой script не будет работать, потому что переадресация дескриптора запроса не работает. Итак, как мы должны справиться с этим?