2013-06-11 17 views
61

Używam $http do wywołania api, które wysyła niestandardowy nagłówek, taki jak X-Foo. Jednak nie mogę jeszcze dowiedzieć się, jak je czytać. Wewnątrz funkcji $http({...}).success(function (data, status, headers, config) {...}), headers jest funkcją, która powinna dać mi skrót wszystkich nagłówków, ale pokazuje tylko nagłówek content-type. Czy istnieje sposób na uzyskanie nagłówków odpowiedzi?

+0

Używasz Firefoksa? Zobacz http://stackoverflow.com/questions/14188662/angularjs-and-apiary-io-cant-read-any-response-headers. –

+0

Nie, chrom. Czy konkretna poprawka FF działa dla chrome? –

+2

Czy wnioski są przesyłane do innej domeny lub do tej samej domeny? Testowałem wysyłanie żądania do tej samej domeny i widzę niestandardowe nagłówki. –

Odpowiedz

144

Niestandardowe nagłówki będą widoczne w tej samej domenie. Jednak w przypadku sytuacji crossdomain serwer musi wysłać nagłówek Access-Control-Expose-Headers: X-Foo, ..., aby upublicznić niestandardowe nagłówki.

+7

Dziękujemy! Uratowałeś moją noc – JRun

+3

Wygląda na to, że musisz podać rzeczywistą nazwę nagłówka zamiast symbolu wieloznacznego. 'Access-Control-Expose-Headers: *' nie działa, ale 'Access-Control-Expose-Headers: Etag' robi. –

+6

to nie działa dla mnie z '$ http'' '' 'http' – chovy

0

Wiosna 4.0+ zapewnić @CrossOrigin adnotacji który ma następujące parametry

  1. pochodzenie = przecinkami oddzielone pochodzenia.
  2. exposedHeaders = lista niestandardowych parametrów liczby oddzielonych liczników.

przykład

@CrossOrigin(origins = "*", exposedHeaders ="X-Total-Count") 
Powiązane problemy