Comment lire les en-têtes de réponse avec $ ressource?
-
20-12-2019 - |
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.
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:
Ceci est les en-têtes du serveur:
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);
});
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