Kode
Kode

Reputation: 3215

AngularJS: Error in resource configuration for action `query`. Expected response to contain an object but got an array

I am trying to call a REST service using Angular 1.3 but keep getting an "Error: error:badcfg Response does not match configured parameter".

I suspect it is in my controller where I call the $scope.data. I believe .data is correct but it is throwing this error.

Here is my service, including a test REST call:

var pfcServices = angular.module('pfcServices', ['ngResource'])

pfcServices.factory('pfcArticles', ['$resource',
  function($resource){
      return $resource('https://myrestcall.com/data, {}, {
          query: {method:'GET'}
      });
  }]);

Here is my controller:

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

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

Within IE, I get a CORS message of: XMLHttpRequest for https://pfc.azure-mobile.net/tables/articles required Cross Origin Resource Sharing (CORS). This does not occur within Chrome.

However, I am not sure if this is related, or just a bad call on my part. I have added my test site to the CORS in Azure Mobile Webservices where I am hosting the test REST call.

I am newer to Angular, so I am leaning towards a bad call on my part.

Upvotes: 2

Views: 10040

Answers (1)

Chandermani
Chandermani

Reputation: 42669

I am not sure why have set query properties on the resource. Either remove the configuration for query

return $resource('https://pfc.azure-mobile.net/tables/articles', {});

or set isArray true on the query configuration.

return $resource('https://pfc.azure-mobile.net/tables/articles', {}, {
          query: {method:'GET',isArray:true}
      });

The error is coming because Angular is not able to deserialize your response as it expects an object but the response from the call is an array.

The query method on $resource already has this flag set, but since you are redefining the query configurations this error is occurring. Do check the $resource documentation.

Upvotes: 3

Related Questions