2015-12-23 14 views
7

Używam następujący kod do wywołania AJAXJak uzyskać nagłówki odpowiedzi w AJAX

$.ajax({ 
     type: "POST", 
     url: "http://******/cxf/view/*****", 
     data: {*****}, 
     headers: {*****}, 
     success: function (dt, status, request) { 
      console.log(request.getAllResponseHeaders()); 

     }, 
     error: function (jqXHR, status) { 

     } 
    }); 

To jest tylko drukowanie typ zawartości. W konsoli programisty widzę liczbę nagłówków w odpowiedzi. Jak mogę dostać te nagłówki w AJAX

enter image description here

+0

Możesz użyć "dataType" w ustawieniu ajax. oznacza, że ​​możesz zmienić typ danych, które chcesz, takie jak "json, xml itp." – softsdev

+0

@softsdev co powinienem podać w dataType? –

+0

Proszę sprawdzić http://stackoverflow.com/questions/11440918/jquery-get-ajax-response-headers?answertab=active#tab-top –

Odpowiedz

3

użyłem kodu samo użyty

success: function (dt, status, request) { 
      console.log(request.getAllResponseHeaders()); 

Problem nie jest z jQuery i Ajax. Nagłówki odpowiedzi ustawiane są przez serwer. Serwer, do którego wysyłasz żądanie, nie ustawia nagłówków! Prosty!!!!

Kiedy próbowałem z mojego serwera [Niektóre reakcje niewyraźne dla bezpieczeństwa] mam następujący wynik

Snap of Console output

+0

Jak programista wyświetla te nagłówki ?? –

+0

@AnoopLL Powinieneś ustawić nagłówki odpowiedzi podczas zwracania odpowiedzi. Jeśli jest OK, możesz pokazać mi kod cfx/view ?? –

+0

Dodałem obraz w moim pytaniu. Właściwie używamy połączenia spoczynku i jego domeny krzyżowej. Możesz zobaczyć nagłówki odpowiedzi w tym obrazie, te nagłówki są ustawione z serwera. –

12

To wydaje żadnego problemu. Próbowałem i udało mi się.

Zastosowanie JSONPlaceholder i tu jest mój kod

$.ajax({ 
    url: root + '/posts/1', 
    headers: {'test': 'test'}, 
    method: 'GET' 
}).then(function(data, status, xhr) { 
    console.log(xhr.getAllResponseHeaders()); 
}); 

wynik jest

Pragma: no-cache 
Date: Wed, 23 Dec 2015 06:36:57 GMT 
Via: 1.1 vegur 
X-Content-Type-Options: nosniff 
Server: Cowboy 
X-Powered-By: Express 
Vary: Origin 
Content-Type: application/json; charset=utf-8 
Cache-Control: no-cache 
Access-Control-Allow-Credentials: true 
Content-Length: 292 
Etag: W/"124-yv65LoT2uMHrpn06wNpAcQ" 
Expires: -1 
+0

sprawdź moje zaktualizowane pytanie. Nagłówek odpowiedzi jest wyświetlany w konsoli programisty. –

5

Na serwerze trzeba dodać

res.header("Access-Control-Expose-Headers", "header-you-want-to-expose"); 

a następnie będzie można uzyskać dostęp to w przeglądarce.

+0

dlaczego jest to odrzucane? –

+0

@ZachSmith Być może downverder popełnił obrazę wobec technologii serwera (węzła?), Choć w tym przypadku można go łatwo przenieść na dowolną inną - więc moim zdaniem nie jest to właściwe. – John

+0

Dodawanie tego nagłówka jest odpowiedzią. Chociaż OP nie precyzuje, że jest to żądanie pochodzenia krzyżowego, sugerują je nagłówki CORS pokazane na zrzucie ekranu. +1 ode mnie. –

Powiązane problemy