opracowujemy obecnie mały projekt AngularJS i zaczynając od frontendu, więc czysty HTML i JavaScript.wywoływanie zewnętrznego api z AngularJS i ngResource
Jednakże, musimy wykonać pewne wywołania API za pomocą ngResource. W tej chwili używamy canned, aby sfałszować wartość zwracaną przez json.
Powiedzmy to zwraca JSON:
GET http://ip-address/something/1.json
Chcę, aby móc nazwać od ngResource:
app.controller('SomethingCtrl', function ($scope, $resource) {
Something = $resource("http://ip-address/something/:id", {id: "@id"});
$scope.something = Something.get({id:1});
});
Z jakiegoś powodu to nie działa, chociaż końcowy pracuje prawidłowo. Angular właśnie wysyła żądanie opcji do tego adresu URL.
Czy to magia ochrony XSS i jak mogę ją rozwiązać?
Aktualizacja: Dodano IP-Adres, na przykład
EDIT:
Zmieniłem mock serwera API, tak że CORS jest dozwolone.
Wracam teraz ten nagłówek i wniosek OPCJE przechodzi
Access-Control-Allow-Headers:X-Requested-With
Access-Control-Allow-Max-Age:86400
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, HEAD, OPTIONS
Access-Control-Allow-Origin:*
Ale teraz, wniosek zostanie anulowany get (brak odpowiedzi zostanie zwrócone). Więc przypuszczam, że Angular robi jakąś magię.
możesz zobaczyć JSONP, jeśli zewnętrzny interfejs API obsługuje JSONP – Atrix1987
Pierwszym parametrem _ $ resource_ powinien być pełny URL 'http: // ip-address/something /: id.json' – remigio
Czy Twoja aplikacja Angular App i "puszkowany" działają na tej samej domenie: port? Jeśli nie, to [Jquery: Dlaczego otrzymuję żądanie OPTIONS od żądania GET?] (Http://stackoverflow.com/questions/1256593/jquery-why-am-i-getting-an-options-request- insted-of-a-get-request). – Stewie