Как настроить Angular $ resource (ngResource) для извлечения данных из другого домена с использованием CORS

Я хотел бы иметь возможность настроить ресурсы, используя $ resource, используя CORS для запроса моих данных. У меня CORS работает с $ http, но те же методы не применяются к $ resource, и я надеялся, что кто-нибудь может прийти мне на помощь и показать мне, как с $ resource.

Я изменилпоследний шаг углового урока использовать CORS, взломав службу phonecatServices, в файле services.js.

я нашелэтот пример который использует $ http.defaults.useXDomain = true; удалите $ http.defaults.headers.common ['X-Requested-With']; строку, чтобы получить угол для запроса данных с помощью CORS, но если я попытаюсь $ resource.defaults.useXDomain = true; Я получаю сообщение об ошибке: «Не удается установить свойство« useXDomain »из неопределенного».

Я предполагаю, что у $ resource нет этого свойства, поэтому мой вопрос заключается в том, как настроить $ resource для выполнения междоменных запросов ресурсов с использованием CORS.

Вот мой код:

angular.module('phonecatServices', ['ngResource']).
    factory('Phone', function($resource){
  return $resource('http\\://localhost\\:8080/:phoneId.json', {}, {
    query: {params:{phoneId:'phones'}, isArray:true}
  });
});

При попытке сделать запрос я получаю следующую ошибку: У объекта # <Resource> нет метода push

РЕДАКТИРОВАТЬ

Я попытался настроить $ http, и он работает большую часть времени, но когда выполняется запрос к ресурсу, в данном случае Phone.get (phoneId); это, кажется, выбрасывает вышеуказанную ошибку.

Я подозреваю, что вызывающий код вызывает ошибку (из controllers.jsшаг 11 угловой учебник):

function PhoneDetailCtrl($scope, $routeParams, Phone) {
  $scope.phone = Phone.get({phoneId: $routeParams.phoneId}, function(phone) {
    $scope.mainImageUrl = phone.images[0];
  });

  $scope.setImage = function(imageUrl) {
    $scope.mainImageUrl = imageUrl;
  }
}

Если я удаляю внутренности вышеупомянутого метода, код работает нормально (без получения изображения для веб-сайта), но я не понимаю, почему это не будет работать? Я настроил службу $ http для использования CORS, так что она должна явно передаваться в $ resource.

Кто-нибудь может пролить свет на это? (любой рабочий пример кода будет принята с благодарностью).

РЕДАКТИРОВАТЬ: 13/08/13

Точно так же любой, кто посещает этот вопрос, знает, что ни один из ответов ниже действительно не ответил на этот вопрос, я сам исследую ответ, но если кто-то обнаружит его и получит ответ, я все равно буду очень признателен.

РЕДАКТИРОВАТЬ: 06/09/13

В настоящее время, глядя на этот проект, кажется, позволяет все, что я ищу:https://github.com/jpillora/xdomain

Ответы на вопрос(2)

Ваш ответ на вопрос