gpt4 book ai didi

javascript - AngularJS:操作 `query` 的资源配置错误。预期响应包含一个对象,但得到一个数组

转载 作者:行者123 更新时间:2023-11-29 19:31:29 25 4
gpt4 key购买 nike

我尝试使用 Angular 1.3 调用 REST 服务,但不断收到“Error: error:badcfg响应与配置的参数不匹配”。

我怀疑它在我的 Controller 中,我在其中调用 $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'}
});
}]);

这是我的 Controller :

var pfcControllers = angular.module('pfcControllers', []);

pfcControllers.controller('pfcCtrl', ['$scope', 'pfcArticles', function ($scope, pfcArticles) {
$scope.data = pfcArticles.query();
}]);

在 IE 中,我收到一条 CORS 消息:XMLHttpRequest for https://pfc.azure-mobile.net/tables/articles需要跨源资源共享 (CORS)。 Chrome 中不会发生这种情况。

但是,我不确定这是否相关,或者只是我的一个错误决定。我已将测试站点添加到 Azure 移动 Web 服务中的 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 上的查询方法已设置此标志,但由于您正在重新定义查询配置,因此发生了此错误。请检查$resource documentation

关于javascript - AngularJS:操作 `query` 的资源配置错误。预期响应包含一个对象,但得到一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com