angularjs – 使用Angular.js拦截器捕获HTTP 401
发布时间:2020-12-17 08:44:01 所属栏目:安全 来源:网络整理
导读:我想使用Angular.js在单页Web应用程序上实现身份验证。 official Angular documentation建议使用拦截器: $provide.factory('myHttpInterceptor',function($q,dependency1,dependency2) { return { // ... 'responseError': function(rejection) { // do som
我想使用Angular.js在单页Web应用程序上实现身份验证。
official Angular documentation建议使用拦截器:
$provide.factory('myHttpInterceptor',function($q,dependency1,dependency2) { return { // ... 'responseError': function(rejection) { // do something on error if (canRecover(rejection)) { return responSEOrNewPromise } return $q.reject(rejection); } }; }); 问题是当服务器发送401错误,浏览器立即停止与“未经授权”的消息,或与登录弹出窗口(当认证HTTP头由服务器发送),但Angular不能捕获与它的拦截器HTTP错误处理,建议。我误解了什么吗?我试过更多的例子在网上找到(例如this,this和this),但没有一个工作。
在应用程序配置块:
var interceptor = ['$rootScope','$q',"Base64",function(scope,$q,Base64) { function success(response) { return response; } function error(response) { var status = response.status; if (status == 401) { //AuthFactory.clearUser(); window.location = "/account/login?redirectUrl=" + Base64.encode(document.URL); return; } // otherwise return $q.reject(response); } return function(promise) { return promise.then(success,error); } }]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |