【发布时间】:2013-09-05 13:51:26
【问题描述】:
我在我的应用程序中创建了一个拦截器来检测会话丢失(服务器发送 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');
});
【问题讨论】:
标签: angularjs interceptor