我想从网络服务中获取数据,这可以通过以下方式完成:
$scope.data = itemsApi.search(null, $scope.filterCriteria);
itemsApi的定义如下:
angular.module('rootApp')
.factory('itemsApi ', function($resource, rootURL) {
return $resource(rootURL + '/items/:id/:action/:correlationUid', {
id : '@itemIdentification'
},
search : {
method : 'POST',
isArray : false
}
});
});
通常,这很好用。通过显示数据获取数据,我的Angular应用程序完成了网页。
但是,我现在已经制定了安全措施,如果用户未登录或会话已过期,则会将用户重定向到SSO登录页面。这意味着可以在API调用中检索303状态代码,并返回网页(html,200)。由于浏览器处理重定向,$scope.data
现在包含HTML而不是JSON,并且发生Javascript错误,可能会阻止浏览器继续遵循重定向:
“错误:[$ resource:badcfg]资源配置出错。预计 响应包含一个数组但得到一个对象 http://errors.angularjs.org/1.2.32/ $资源/ badcfg P0 =阵列&安培; P1 =对象 ...
我已经尝试在响应上创建一个拦截器,找出我是否检索HTML页面而不是JSON并采取行动,但我发现它是一个肮脏的解决方案,我猜它会在项目时产生问题处于进一步的状态。
如何配置应用程序,以便跟踪http请求的重定向,而不是(尝试)解析为JSON?