Javascript AngularJS:操作“查询”的资源配置出错。预期响应包含对象,但获得数组
我试图使用Angular 1.3调用REST服务,但不断得到一个“Error:Error:badcfg” 响应与配置的参数“”不匹配 我怀疑它在我的控制器中调用$scope.data。我相信。数据是正确的,但它抛出了这个错误 这是我的服务,包括一个测试REST调用:Javascript AngularJS:操作“查询”的资源配置出错。预期响应包含对象,但获得数组,javascript,angularjs,web-services,rest,azure,Javascript,Angularjs,Web Services,Rest,Azure,我试图使用Angular 1.3调用REST服务,但不断得到一个“Error:Error:badcfg” 响应与配置的参数“”不匹配 我怀疑它在我的控制器中调用$scope.data。我相信。数据是正确的,但它抛出了这个错误 这是我的服务,包括一个测试REST调用: var pfcServices = angular.module('pfcServices', ['ngResource']) pfcServices.factory('pfcArticles', ['$resource',
var pfcServices = angular.module('pfcServices', ['ngResource'])
pfcServices.factory('pfcArticles', ['$resource',
function($resource){
return $resource('https://myrestcall.com/data, {}, {
query: {method:'GET'}
});
}]);
这是我的控制器:
var pfcControllers = angular.module('pfcControllers', []);
pfcControllers.controller('pfcCtrl', ['$scope', 'pfcArticles', function ($scope, pfcArticles) {
$scope.data = pfcArticles.query();
}]);
在IE中,我得到一条CORS消息:XMLHttpRequest,用于所需的跨源资源共享(CORS)。这在Chrome中不会发生
然而,我不确定这是否是相关的,或者只是我的一个糟糕的决定。我已将我的测试站点添加到Azure Mobile Webservices中的CORS,我将在其中承载测试REST调用
我是新来的Angular,所以我倾向于一个糟糕的调用。我不确定为什么要在资源上设置
query
属性。删除查询的配置
return $resource('https://pfc.azure-mobile.net/tables/articles', {});
或者在query
配置上设置isArray
true
return $resource('https://pfc.azure-mobile.net/tables/articles', {}, {
query: {method:'GET',isArray:true}
});
出现错误是因为Angular无法反序列化您的响应,因为它需要一个对象,但来自调用的响应是一个数组
$resource
上的查询方法已设置了此标志,但由于您正在重新定义查询配置,因此发生了此错误。一定要检查一下房间 成功了。现在它变得更有意义了,如果我有一个基本的REST调用,我可以使用直接返回,如果我需要更多的高级选项,我可以使用更多的API。