我正在尝试使用Angular 1.3调用REST服务,但不断收到“错误:错误:badcfg 响应与配置的参数“。
不匹配我怀疑它在我的控制器中,我调用$ scope.data。我相信.data是正确的但却抛出了这个错误。
这是我的服务,包括测试REST调用:
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消息:XML https://pfc.azure-mobile.net/tables/articles的XMLHttpRequest需要跨源资源共享(CORS)。这不会发生在Chrome中。
然而,我不确定这是否相关,或者只是我的一个不好的电话。我已将测试站点添加到Azure Mobile Webservices中的CORS,我将在其中托管测试REST调用。
我是Angular的新手,所以我倾向于接到一个糟糕的电话。
答案 0 :(得分:3)
我不确定为什么在资源上设置query
属性。删除query
return $resource('https://pfc.azure-mobile.net/tables/articles', {});
或在isArray
配置中设置query
为真。
return $resource('https://pfc.azure-mobile.net/tables/articles', {}, {
query: {method:'GET',isArray:true}
});
错误即将发生,因为Angular无法反序列化您的响应,因为它需要一个对象,但来自该调用的响应是一个数组。
$resource
上的查询方法已设置此标志,但由于您正在重新定义查询配置,因此发生此错误。请检查$resource
documentation。