Chciałbym móc skonfigurować zasoby przy użyciu $ resource za pomocą CORS, aby zażądać moich danych. Mam CORS pracującego z $ http, ale te same techniki nie mają zastosowania do $ resource i miałem nadzieję, że ktoś przyszedł mi na ratunek i pokazał mi, jak z $ resource.
Zmodyfikowałem last step of the Angular tutorial, aby używać CORS hakując usługę phonecatServices w pliku services.js.
Znalazłem this example, który używa $ http.defaults.useXDomain = true; usuń $ http.defaults.headers.common ['X-Requested-With']; linię, aby uzyskać kątowy wniosek o dane za pomocą CORS, ale jeśli spróbuję $ resource.defaults.useXDomain = true; Pojawia się błąd: "Nie można ustawić właściwości" useXDomain "z undefined".
Zakładam, że zasób $ $ nie ma tej właściwości, więc moje pytanie brzmi: jak skonfigurować $ zasób, aby żądań zasobów domeny krzyżowej za pomocą CORS.
Oto mój kod:
angular.module('phonecatServices', ['ngResource']).
factory('Phone', function($resource){
return $resource('http\\://localhost\\:8080/:phoneId.json', {}, {
query: {params:{phoneId:'phones'}, isArray:true}
});
});
otrzymuję następujący błąd, gdy próbuję zrobić wniosek: Przedmiot # < zasobów > ma metoda 'push'
EDIT
Próbowałem skonfigurować $ http i działa przez większość czasu, ale gdy wywołanie jest wykonane do kwerendy zasobów, w tym przypadku Phone.get (phoneId); wydaje się, że powyższy błąd został zgłoszony.
Telefoniczny kodPodejrzewam, że jest przyczyną błędu (od controllers.js step 11 angular tutorial):
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;
}
}
Jeśli usunąć wnętrzności powyższej metodzie kod działa poprawnie (bez uzyskania obrazu na stronie internetowej) , ale nie rozumiem, dlaczego to nie zadziałałoby? Skonfigurowałem usługę $ http, aby używać CORS, tak aby najwyraźniej przekazać ją do $ resource.
Czy ktoś może rzucić na nią jakiekolwiek światło? (każdy przykładowy kod byłby bardzo doceniany).
EDIT: 13/08/13
Tak więc każdy odwiedzając to pytanie jest świadomy, żadna z odpowiedzi poniżej naprawdę odpowiedział na pytanie, badam odpowiedź siebie, ale jeśli ktoś zauważy to i ma odpowiedź Bardzo to doceniam.
EDIT: 06/09/13
Obecnie patrząc na ten projekt, wydaje się, aby umożliwić wszystkim szukam: https://github.com/jpillora/xdomain
Czy próbowałeś już korzystać z usługi? –
czy mógłbyś dać mi przykład, Edgar? –