预期的响应包含一个数组但得到了一个 GET

Expected response to contain an array but got an GET

我到处研究这个问题,但没有一个解决方案适合我。 像这样:Error: [$resource:badcfg] Error in resource configuration. Expected response to contain an array but got an object?

我仍然收到错误配置错误。谁能帮我解决这个问题,谢谢。

工厂:

    angular.module('lensApp')
       .factory('LensResource', function($resource) {
        return $resource(
            'api/lens',
             null,
             {'query': {method:'GET', isArray: false}}
        );
    });

服务:

var params = {};
params['id[]'] = [1,2];
LensResource.query(params, function(data) {
    console.log(data);     
 }, function(error) {
       console.log("error");
 });    

错误出在你的工厂。您不应该将 null 作为第二个参数传递。

$resourceparamDefaults是可选的,它只能是一个对象。如果您将在此处传递 null,angular 将不会处理为 paramDefaults。它将假定没有 paramDefaults 并且 null 是一个 actions 参数,并且您的第三个参数将被视为 options 而不是 actions。这样,$resource 将使用查询的默认实现,它需要数组。

要修复它,传递空对象 ({}) 而不是 null