2015-03-07 7 views
10

mia risposta HTTP contiene l'autenticazione intestazioni (come detto qui: Authentication:76efbc0946773b62c93e952b502a47acd898200f6f80dc46ac87ffc501c00780) quando ho ispezionare la richiesta con l'ispettore, ma una chiamata a headers("Authentication") rendimenti null

return $http({ 
    method: "GET", 
    url: url, 
    headers: { 
     'Content-Type': "application/json" 
    } 
}).success(function (data, status, headers, config) { 
    console.log(headers("Authentication")); 
}) 

Do hai qualche idea su cosa potrei fare nel modo sbagliato?

FYI, ho provato a riportarlo in un modo "promettente", con .then, e il problema è sempre lo stesso.

+4

Probabilmente necessario aggiungere access-control-Expose-Header per la vostra risposta dal server per renderlo accessibile - vedi http://stackoverflow.com/ questions/17038436/reading-response-headers-when-using-http-of-angularjs? lq = 1 –

+0

@BradBarber è così. Rispondi se vuoi ottenere la taglia. – GeoffreyB

risposta

21

Il codice sembra buono ma se si tratta di una richiesta CORS il server deve includere Access-Control-Expose-Headers: {eventuali intestazioni personalizzate} nella risposta.

C'è una precedente domanda/risposta con maggiori dettagli: Reading response headers when using $http of Angularjs

+0

L'attivazione di CORS non ha alcun impatto sulla sicurezza. Non dovremmo inviare i dati richiesti nel corpo della risposta. – maheshsgr

5

Nel successo callback put:

console.log(headers('content-type')); 
console.log(headers()); // All headers 

Penso che la prima linea di ritorno il risultato nella vostra cas.
In secondo luogo, hai ottenuto l '"Autenticazione"?

Le intestazioni personalizzate saranno visibili nello stesso dominio. Nel caso di crossdomain, è necessario inviare l'intestazione Access-Control-Expose-Headers: Authentication, ... dal server.

Problemi correlati