Condivisione delle risorse tra domini GET: 'rifiutato di ottenere un colpo di testa pericoloso ‘ETAG’' dalla risposta

StackOverflow https://stackoverflow.com/questions/5822985

Domanda

Una semplice richiesta GET senza intestazioni personalizzate. La risposta viene restituito come previsto. I dati nel corpo è accessibile, ma non le intestazioni.

Quando provo ad accedere l'intestazione "ETAG", i browser sollevano un'eccezione:

Si sono rifiutati di ottenere pericoloso colpo di testa "ETAG"

Chrome, Safari e Firefox tutto si comportano allo stesso. Non ho prove che su IE.

Che cosa mi manca qui?

È stato utile?

Soluzione

Solo intestazioni di risposta semplici sono esposti durante l'uso CORS. intestazioni di risposta semplici sono definiti qui . ETag non è un semplice intestazioni di risposta. Se si desidera esporre le intestazioni non semplici, è necessario impostare l'intestazione Access-Control-Expose-Headers, in questo modo:

Access-Control-Expose-Headers: ETag

Si noti tuttavia che ho bug notati in Chrome, Safari e Firefox che impediscono le intestazioni non semplici da essere esposti in modo corretto. Questo può essere risolto ora, non sono sicuro.

Non dovrebbe essere necessario fare una richiesta di verifica preliminare, in quanto verifica preliminare è necessaria solo per i non-GET / metodi HTTP POST o non semplice richiesta intestazioni (e si stanno chiedendo su risposta header).

Altri suggerimenti

Avete mai provato AJAX 2.0 (Cross condivisione dominio) è una metodologia abbastanza recentemente fatto uscire dal W3C: http://www.w3.org/TR/XMLHttpRequest2/#ref-cors

Inoltre c'è un altro modo di fare questo, che si chiama JSON-P, è come una richiesta JSON, ma è possibile utilizzarlo per il cross-domini: http://en.wikipedia.org/wiki/JSONP

Entrambi può essere molto pericoloso per i responsabili del sito se non configurato correttamente, però. Quindi state attenti quando lo si utilizza.

[PS] Non sono sicuro se questo aiuterà: http://www.w3.org/Protocols/ RFC2616 / RFC2616-sec14.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top