使用ODataAngularResources时AngularJS$资源错误

使用ODataAngularResources时AngularJS$资源错误,angularjs,Angularjs,我正在尝试使用ODataAngularResources。我阅读了文档,并完全按照显示的方式进行了操作。下面是我如何使用它 $scope.claims = $odataresource("/odata/DeniedClaims") .odata().withInlineCount().take(20).query(); Chrome dev中的网络显示了数据,但我仍然得到以下错误: Error: [$resource:badcfg] http://err

我正在尝试使用ODataAngularResources。我阅读了文档,并完全按照显示的方式进行了操作。下面是我如何使用它

$scope.claims = $odataresource("/odata/DeniedClaims")
                    .odata().withInlineCount().take(20).query();
Chrome dev中的网络显示了数据,但我仍然得到以下错误:

Error: [$resource:badcfg] http://errors.angularjs.org/1.4.5/$resource/badcfg?p0=Error%20in%20resource…4=GET&p5=%2Fodata%2FDeniedClaims%3F%24top%3D20%26%24inlinecount%3Dallpages

为什么会出现此错误,如何解决此问题?数据以JSON的形式从服务器发送。当我进入http://localhost/odata/DeniedClaims 在浏览器中,我以json数组的形式获取所有数据

我一定是在.Net中使用旧版本的OData。我卸载并重新安装了OData,并将引用设置为使用System.Web.OData,而不是使用System.Web.Http.OData。我还将路由配置从config.Routes.MapODataRouteodata,odata,GetEdmModel更改为config.MapODataServiceRouteodata,odata,GetEdmModel。然后,我不得不从AngularJS控制器中删除withInlineCount。这对我有用。我仍然不确定为什么前一个会导致$resource中出现错误

错误消息中的链接会告诉您原因:$resource服务期望响应可以反序列化为数组,但接收到对象,或者反之亦然,则会发生此错误。默认情况下,除了需要数组的查询之外,所有资源操作都需要对象。我在文档中也读过这个,但是我不知道为什么我会从代码中得到这个错误。在我的代码中,除了我显示的用于检索数据的代码之外,没有其他内容。它只使用ODataAngularResources从服务器获取数据。如何反序列化为数组?我想我需要做的就是从服务器检索数据。服务器正在发送json。我接收它的格式如Chrome网络选项卡所示:odata.metadata:http://localhost:58891/odata/$metadataDeniedClaims,}odata.metadata:http://localhost:58891/odata/$metadataDeniedClaims值:[{id:14,AuthID:1111223223,状态:拒绝,生效日期:2015-08-10T00:00:00,…},…]我很困惑。我如何解决这个问题?