Buduję aplikację frontendową za pomocą React i Redux i używam axios do wykonywania moich żądań. Chciałbym uzyskać dostęp do wszystkich pól w nagłówku odpowiedzi. W swojej przeglądarce mogę sprawdzić nagłówek i widzę, że wszystkie potrzebne pola są obecne (takie jak token, uid itp.), Ale kiedy dzwonię
const request = axios.post(`${ROOT_URL}/auth/sign_in`, props);
request.then((response)=>{
console.log(response.headers);
});
Po prostu
Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"}
Tutaj moja karta sieciowa przeglądarki, jak widać, wszystkie inne pola są obecne.
Bests.
http-headers
es6-promise
axios
TWONEKSONE
źródło
źródło
axios.defaults.headers
do skonfigurowania parametrów nagłówka REQUEST? Muszę uzyskać dostęp do odpowiedzi na odpowiedź. @BenHareOdpowiedzi:
W przypadku żądań CORS przeglądarki domyślnie mają dostęp tylko do następujących nagłówków odpowiedzi:
Jeśli chcesz, aby Twoja aplikacja kliencka miała dostęp do innych nagłówków, musisz ustawić nagłówek Access-Control-Expose-Headers na serwerze:
źródło
expose: ['Access-Token', 'Uid']
na początku:resource '*', :headers => :any, :methods => [:get, :post, :put, :patch, :delete, :options, :head], expose: ['Access-Token', 'Uid']
'Access-Control-Expose-Headers' 'Authorization, X-Suggested-Filename, content-disposition' always;
Nadal widzę tylko, żecontent-type: "application/pdf"
naprawdę trzeba wyciągnąćcontent-disposition
To naprawdę mi pomogło, dziękuję Nickowi Uraltsevowi za odpowiedź.
Dla tych z Was, używając nodejs z Cors :
W przypadku, gdy wysyłasz odpowiedź w drodze
res.header('Authorization', `Bearer ${token}`).send();
źródło
Miałem ten sam problem. Zrobiłem to w moim „WebSecurity.java”, chodzi o metodę setExposedHeaders w konfiguracji cors.
Mam nadzieję, że to zadziała.
źródło
Napotkano ten sam problem w asp.net core Mam nadzieję, że to pomoże
źródło
Według oficjalnych dokumentów :
Może to pomóc, jeśli potrzebujesz nagłówków HTTP, którymi odpowiedział serwer . Wszystkie nazwy nagłówków są pisane małymi literami i można uzyskać do nich dostęp za pomocą notacji w nawiasach. Przykład:
response.headers['content-type']
da coś takiego: headers: {},źródło
W przypadku SpringBoot2 po prostu dodaj
do kodu realizacji CORS filtra się na białej liście
custom-header1
icustom-header2
etcźródło
o pomoc django
źródło
W przypadku Spring Boot 2, jeśli nie chcesz używać globalnej konfiguracji CORS, możesz to zrobić za pomocą metody lub poziomu klasy / kontrolera, używając
@CrossOrigin
adnotacji z atributeexposedHeaders
.Na przykład, aby dodać nagłówek
authorization
dlaYourController
metod:źródło