2016-05-19 6 views
1

Ich habe ein Problem, bei dem das $ http-Objekt nicht alle Header zurückgibt. Ich habe meine Recherchen durchgeführt und festgestellt, dass das zurückgegebene Objekt standardmäßig nur eine begrenzte Liste von Header-Daten anzeigt, sofern Sie nicht 'Access-Control-Expose-Header' und 'Access-Control-Allow-Origin' angeben. Ich habe das unten getan, aber bekomme immer noch keine vollständige Liste der Kopfdaten. Irgendwelche Vorschläge?

this.$http.defaults.headers.common['Access-Control-Expose-Headers'] = 'Etag'; 
this.$http.defaults.headers.common['Access-Control-Allow-Origin'] = '*'; 
this.$http.get('http://123.456.78.900:3000/api/events?' + filter) 
.then(function (response) { 
    console.log('data', response.data); 
    console.log('headers', response.headers()); 
}); 

Reaktion:

headers Object {content-type: "application/json; charset=utf-8"} 

Antwort

0

Das Versprechen Funktion hat 4 Parameter, von denen der dritte Header ist. Versuche diese zu benutzen.

this.$http.defaults.headers.common['Access-Control-Expose-Headers'] = 'Etag'; 
this.$http.defaults.headers.common['Access-Control-Allow-Origin'] = '*'; 
this.$http.get('http://123.456.78.900:3000/api/events?' + filter) 
.then(function (response, status, headers) { 
    console.log('data', response.data); 
    console.log('headers', headers); 
}); 
+0

Ist Ihnen bekannt, dass ab v 1.5 diese 4 Parameter jetzt als Antwort enthalten sind? Ich habe diese Info hier gefunden: https://docs.angularjs.org/api/ng/service/$http – emarel

+0

Oh mein Schlechter, ich habe 1.5 nicht benutzt – UtsavShah