AngularJS:使用 $resource - $save 和 $query 时出错

AngularJS : Error while using $resource - $save and $query

我有一个 angular 服务,它调用 Play 服务器并获取 JSON 对象。下面是我的代码片段。

service.js

angular.module('testApp.services',[]).factory('testService',function($resource){

var service = {
    getData : getData
};
function getData(){
    return $resource('http://localhost:9000/testRead',{}, {
            save: {
                    method: 'POST',
                headers: {
                        'Auth-Token': 'B1016693LCAP8154'
                }
            }
    });
}; 
return service;
});

controller.js

angular.module('testApp.controllers',['testApp.services']).controller('TestController',function($scope, testService){

    testService.getData().save().$promise.then(function(data){
         $scope.output = angular.fromJson(JSON.stringify(data));
         console.log("Output : ", $scope.output);
  });

});

在控制器中,当我使用 testService.getData().query().$promise. 时,一切正常。但是当我将其更改为 testService.getData().save().$promise. 时,它会抛出一个错误:

Error: [$resource:badcfg] Error in resource configuration

我从游戏中返回一个 JSON 类型。我读到 save() 需要一个对象,而 query() 需要一个数组类型?为什么它不工作呢?当我在浏览器中签入时,我在控制器的 response.But 中获取 JSON 数据,但我无法使用它。请看下面的图片。

错误:

浏览器响应:

你提供的错误似乎不是我的全部日志。所以我这里只能做一个假设。

默认情况下,$resource 服务的保存方法期望响应是一个 JSON 对象,而您的响应是 一个数组 个 JSON 个对象,因此会引发错误。

如果是这种情况,您可以通过将 isArray 添加到您的配置中来快速修复它:(同样的修复可以应用于其他 $resource函数,例如getremovequery)

save: {
            method: 'POST',
            headers: {
                'Auth-Token': 'B1016693LCAP8154'
            },
            isArray: true
        }