Jak odczytać nagłówki odpowiedzi w angularjs?
Mój serwer zwraca taki nagłówek: Content-Range:0-10/0
:
Próbowałem bez powodzenia czytać ten nagłówek:
var promise = $http.get(url, {
params: query
}).then(function(response) {
console.log(response.headers());
return response.data;
});
Które tylko drukuje
Object {content-type: "application/json; charset=utf-8"}
Jakieś pomysły, jak uzyskać dostęp do nagłówka zakresu treści?
6 answers
Użyj zmiennej headers
w wywołaniach sukcesu i błędów
$http.get('/someUrl').
success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
})
.error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
Jeśli jesteś w tej samej domenie, powinieneś być w stanie odzyskać nagłówki odpowiedzi. Jeśli między domenami, musisz dodać Access-Control-Expose-Headers
nagłówek na serwerze.
Access-Control-Expose-Headers: content-type, cache, ...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-07 02:23:18
Dlaczego po prostu nie spróbować:
var promise = $http.get(url, {
params: query
}).then(function(response) {
console.log('Content-Range: ' + response.headers('Content-Range'));
return response.data;
});
Szczególnie, jeśli chcesz zwrócić promise
, aby mógł być częścią łańcucha obietnic.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-07 18:27:23
Zaktualizowano na podstawie odpowiedzi Mahometa...
$http.get('/someUrl').
success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
console.log(headers()['Content-Range']);
})
.error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 02:49:33
Dodatkowo do odpowiedzi Eugene 'a Retunsky' ego, cytując z dokumentacji $http odnośnie odpowiedzi:
Obiekt odpowiedzi ma następujące właściwości:
Dane –
{string|Object}
– ciało odpowiedzi przekształciło się wraz z funkcjami transformacji.Status –
{number}
– kod statusu HTTP odpowiedzi.Nagłówki –
{function([headerName])}
– funkcja getter nagłówka.Config –
{Object}
– obiekt konfiguracyjny, który został użyty do wygenerowania żądania.StatusText –
{string}
– tekst statusu HTTP odpowiedzi.
Proszę zauważyć, że argument callback order for $resource (v1.6) nie jest taki sam Jak powyżej:
Wywołanie zwrotne wywołane sukcesem jest wywołane argumentami(value (Object|Array), responseHeaders (Function), status (number), statusText (string))
, gdzie wartością jest wypełniona instancja zasobu lub obiekt collection. Błąd wywołanie zwrotne jest wywoływane argumentem(httpResponse)
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-17 15:59:58
Nagłówki odpowiedzi w przypadku Kors pozostają ukryte. Musisz dodać nagłówki odpowiedzi, aby skierować kątowe, aby odsłonić nagłówki w javascript.
// From server response headers :
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Origin, X-Requested-With,
Content-Type, Accept, Authorization, X-Custom-header");
header("Access-Control-Expose-Headers: X-Custom-header");
header("X-Custom-header: $some data");
var data = res.headers.get('X-Custom-header');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-13 07:02:26
Zgodnie z MDN niestandardowe nagłówki nie są domyślnie wyświetlane. Administratorzy serwera muszą ujawnić je za pomocą "Access-Control-Expose-Headers" w taki sam sposób, jak mają do czynienia z"access-control-allow-origin"
Zobacz ten link MDN dla potwierdzenia [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 15:35:26