Я сделал перехватчик в своем приложении, которое обнаруживает потерю сеанса (сервер отправляет HTTP 419). В этом случае мне нужно запросить новый сеанс с сервера, а затем я бы хотел отправить исходный запрос снова автоматически.
Возможно, я мог бы сохранить запрос в перехватчике запросов, а затем отправить его снова, но может быть более простое решение.
Обратите внимание, что для создания сеанса я должен использовать определенный веб-сервис.
angular.module('myapp', [ 'ngResource' ]).factory(
'MyInterceptor',
function ($q, $rootScope) {
return function (promise) {
return promise.then(function (response) {
// do something on success
return response;
}, function (response) {
if(response.status == 419){
// session lost
// create new session server-side
// Session.query();
// then send current request again
// ???
}
return $q.reject(response);
});
};
}).config(function ($httpProvider) {
$httpProvider.responseInterceptors.push('MyInterceptor');
});