Как настроить 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