Sto effettuando una chiamata http.patch a un'API REST che ha esito positivo (stato 200) ma non tutte le intestazioni/chiavi di risposta vengono restituite. Sono interessato alla chiave/valore ETag.Angular2 Http Response mancante chiave/valori dell'intestazione
Ecco un frammento di codice:
let etag:number = 0;
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('If-Match', String(etag));
this.http.patch(
'http://example.com:9002/api/myresource/',
JSON.stringify(dto),
{headers: headers}
)
.subscribe(
(response:Response) => {
let headers:Headers = response.headers;
let etag:String = headers.get('ETag');
console.log(etag);
}
);
Quando si effettua la stessa chiamata con un client REST (postino), l'intestazione di risposta contiene:
Content-Type: application/hal+json;charset=UTF-8
Date: Mon, 01 Feb 2016 05:21:09 GMT
ETag: "1"
Last-Modified: Mon, 01 Feb 2016 05:15:32 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
X-Application-Context: application:dev:9002
è la chiave intestazione di risposta/valori mancanti un insetto? Il problema può essere risolto con la configurazione?
Sto avendo un problema simile, tranne che se guardo nella scheda Rete nel mio debugger del browser, posso chiaramente vedere l'intestazione Etag nd il suo valore nella risposta http alla chiamata api che ho fatto, tuttavia se stampo il le intestazioni di risposta alla console, sono solo 5 visualizzate nella matrice. Il browser ottiene TUTTE le intestazioni e quindi i filtri angolari quali sono disponibili o qualcosa del genere? ... perché ho provato ad aggiungere l'intestazione ETag alle intestazioni consentite nelle impostazioni cors nel mio spring boot api, ma non aiuta. – gezinspace
Penso che probabilmente sarebbe meglio come una domanda separata, ma hai aggiunto "Access-Control-Expose-Headers": "etag" alle intestazioni delle richieste? –
Ah, mi dispiace, lo terrò a mente per domande future. Sì, dopo aver visto questo suggerimento in un'altra domanda ho aggiunto questo alle intestazioni della mia richiesta in modo angolare. Poi ho ricevuto un altro errore che diceva qualcosa sulla falsariga di im non permesso di usare quell'intestazione. Presumevo che ciò significasse che dovevo aggiungerlo alle intestazioni consentite nella configurazione di CORS nell'app di boot server di primavera, ma a quanto pare non è così. – gezinspace