Question

J'utilise $ ressource pour obtenir des données de mon service reposant et j'ai besoin de lire les en-têtes de réponse pour obtenir la valeur "x-page" et "x-total-pages" pour la pagination.

exemple:

Access-Control-Max-Age:1728000
Cache-Control:max-age=0, private, must-revalidate
Connection:Keep-Alive
Content-Length:2637
Content-Type:application/json
Date:Thu, 10 Apr 2014 16:53:01 GMT
Server:WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24)
Vary:Origin
X-Page:1
X-Per-Page:10
X-Total:17
X-Total-Pages:2

Mais je n'ai pas pu obtenir des enpleurs complets du serveur.

Ceci est renvoyé des en-têtes: Entrez la description de l'image ici

Ceci est les en-têtes du serveur: Entrez la description de l'image ici

Ceci est mon code:

.factory('TestAPI', ['$resource',
        function ($resource) {
            return $resource("http://ip.jsontest.com/?callback=showIP", {}, {
                query: {
                    method: 'GET'
                }
            });
        }])

TestAPI.query({}, function (value, responseHeaders) {
                console.log(responseHeaders());
            }, function (response) {
                console.log(response);
 });

Était-ce utile?

La solution

Dans vos en-têtes de réponse, vous devez ajouter l'en-tête suivant:

Access-Control-Expose-Headers: X-Total-Pages, X-Page

Avec cela, le navigateur est capable d'exposer vos en-têtes de douane une lecture angulaire.

Autres conseils

Après avoir fait ce que @Nancoder a dit

Vous pouvez lire l'en-tête en ajoutant un intercepteur à votre ressource $.

Cela ressemblerait à ceci

.factory('TestAPI', ['$resource',
        function ($resource) {
            return $resource("http://ip.jsontest.com/?callback=showIP", {}, {
                query: {
                    method: 'GET',
                    interceptor: {
                        response: function (resp) {
                            console.log(resp.headers("X-Total-Pages"));
                            console.log(resp.headers("X-Page"));
                            return resp.resource;
                        }
                    }
                }
            });
        }])

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top