大佬教程收集整理的这篇文章主要介绍了angularjs – 处理Angular 401响应,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我请求api时,如果令牌无效(令牌失效超过五分钟),则获得401.
我知道我可以拦截401例如
app.factory("httpErrorInterceptorModule",["$q","$rootScope","$LOCATIOn",function($q,$rootScope,$LOCATIOn) { var success = function(responsE) { // pass through return response; },error = function(responsE) { if(response.status === 401) { // dostuff } return $q.reject(responsE); }; return function(httpPromisE) { return httpPromise.then(success,error); }; } ]).config(["$httpProvider",function($httpProvider) { $httpProvider.responseInterceptors.push("httpErrorInterceptorModule"); } ]);
但是,您可能需要使用一些测试端点来保护控制器免受不受限制的访问,您可能需要使用resolve https://thinkster.io/egghead/resolve/
因此,在这种情况下,您将收到与限制访问procprocted端点相关的错误,但不会收到与您的页面相关的错误.
为了解决这个问题,我使用了标记参数(或标题)来找出登录后我应该重定向用户的位置.
angular.factory('httpInterceptor',function ($q,$log,some@R_675_9260@cE) { return { request: function (config) { return config || $q.when(config) },response: function (responsE) { return response || $q.when(responsE); },responseError: function (responsE) { if (response.status === 401) { //here I preserve login page some@R_675_9260@ce .setReStrictedPageBeforeLogin( extractPreservedInfoAboutPage(responsE) ) $rootScope.$broadcast('error') } return $q.reject(responsE); } }; }) .config(function ($httpProvider) { $httpProvider.interceptors.push('httpInterceptor'); });
以上是大佬教程为你收集整理的angularjs – 处理Angular 401响应全部内容,希望文章能够帮你解决angularjs – 处理Angular 401响应所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。